http://www.blogjava.net/ahgf/archive/2005/10/14/15505.html
前提:
CREATE TABLE Booking (
id INTEGER NOT NULL,
date_made DATE,
reserved_until TIMESTAMP,
price DECIMAL(15, 2) NOT NULL,
Purchase_id INTEGER,
PRIMARY KEY(id))
create sequence booking_seq
start with 1
increment by 1
nomaxvalue;
方法一:
利用Spring的org.springframework.jdbc.support.incrementer.OracleSequenceMaxValueIncrementer
OracleSequenceMaxValueIncrementer incr =
new OracleSequenceMaxValueIncrementer(dataSource, "booking_seq");
public int getNewBookingId() {
return incr.nextIntValue();
}
针对不同的数据库Spring提供了不同的支持类。
方法二:使用数据库本身的触发器
CREATE OR REPLACE TRIGGER tib_booking BEFORE INSERT
ON BOOKING FOR EACH ROW
DECLARE
integrity_error EXCEPTION;
errno INTEGER;
errmsg CHAR(200);
dummy INTEGER;
FOUND BOOLEAN;
BEGIN
-- Column "ID" uses sequence booking_seq
SELECT booking_seq.NEXTVAL INTO :NEW.ID FROM dual;
-- Errors handling
EXCEPTION
WHEN integrity_error THEN
RAISE_APPLICATION_ERROR(errno, errmsg);
END;
测试:
INSERT INTO BOOKING(date_made,price) VALUES(SYSDATE,22222);
COMMIT;
分享到:
相关推荐
这个项目是关于将Struts2.3.6、Hibernate4.3.5、Spring 4.0.5框架与Oracle 10g数据库集成的一个实例。这个集成过程涉及到多个步骤,包括配置校验、国际化、数据导出到Excel,以及实现用户管理功能如添加、修改、删除...
7. **使用Oracle sequence**:在Oracle数据库环境下,使用sequence作为主键生成策略是一种常见的做法。 8. **异常处理**:如`java.net.SocketException`等异常的处理,这对于确保应用程序的健壮性和稳定性非常重要...
- **主键自动生成**:支持4种主键策略,包括分布式唯一ID生成器(Sequence),可根据实际需求自由配置。 - **内置代码生成器**:通过命令行或Maven插件快速生成Mapper、Model、Service和Controller层代码,支持模板...
以Oracle为例,其`CREATE SEQUENCE`语句可以创建一个序列对象,每次调用`NEXTVAL`或`CURRVAL`函数时,序列就会自增并返回新的值。例如: ```sql CREATE SEQUENCE my_sequence START WITH 1 INCREMENT BY 1; ``` 在...
3. New Features and Enhancements in Spring Framework 4.0 ............................................ 17 3.1. Improved Getting Started Experience .........................................................
它消除了几乎所有的 JDBC 代码和手动设置参数以及获取结果集的工作。MyBatis 使用简单的 XML 或注解进行配置和原始映射,将接口和 Java 的 POJOs(Plain Old Java Objects,普通的 Java 对象)映射成数据库中的记录。 ...
- Spring_jdbc:根据策略类型修改 `DAO` 文件中的 `save()` 方法,例如针对 Oracle 的 `sequence`。 9. **特殊主键策略**: - 对于序列(sequence)主键,需要修改生成的 DAO 文件中的保存方法,例如:`...
73.8. transaction有那几种实现(事务处理)(Spring) 79 73.9. Spring IoC 79 73.10. Spring AOP面向方面编程 82 74. 项目中为什么使用SSH 85 75. Spring在SSH中的作用 86 76. weblogic 86 76.1. 如何给weblogic指定...
在SSH整合中,Spring可以作为服务层和控制层的粘合剂,通过AOP(面向切面编程)实现事务管理,同时也可以提供数据源配置、JDBC模板、DAO支持等功能。对于Oracle 11g数据库的连接,Spring配置文件中需要定义数据源,...
12. 主键生成策略:在SQLServer数据库中,native、hilo、identity可以作为主键生成策略,但sequence不适用,因为它依赖于支持序列的数据库,如Oracle。 13. Spring配置文件:Spring的核心配置文件通常为...
3. New Features and Enhancements in Spring Framework 4.0 ............................................ 17 3.1. Improved Getting Started Experience .........................................................
例如,当一个方法期望接收三个位置参数,而实际上只传递了一个或两个参数时,就会抛出此类异常。解决这个问题的方法是检查调用语句,确保传入的参数数量与方法定义中所要求的数量一致。 ### 错误二:org.hibernate....
- **概述数据模型**:数据模型是描述数据的结构、关系以及操作规则的一种方法,常见的有ER模型等。 - **数据库设计**:包括需求分析、概念设计、逻辑设计和物理设计等多个阶段。 **3. 创建表** - 使用`CREATE TABLE...
2. **SEQUENCE**:使用数据库序列生成主键,适用于支持序列的数据库,如Oracle。 3. **TABLE**:通过数据库表生成主键,适用于不支持序列的数据库,如MySQL。 4. **UUID**:生成全局唯一的UUID字符串作为主键。 5. *...
- **Ant与Maven**:对比两种构建工具的特点与应用场景。 - **Log4J**:介绍日志框架的配置与使用。 #### 工作流与全文检索 - **工作流**:工作流管理系统的基本概念与原理。 - **全文检索**:使用Lucene进行文本...
- JDBC是一种Java API,可以连接和执行查询数据库的操作。 - JDBC驱动用于连接数据库,Hibernate在底层使用JDBC与数据库交互。 2. JavaDAO(Data Access Object): - DAO模式是一种用于访问数据库的编程模式。 ...
{8.3}创建线程的两种方法}{123}{section.8.3} {8.4}Runnable}{123}{section.8.4} {8.5}Sleep阻塞与打断唤醒}{124}{section.8.5} {8.5.1}sleep与wait的差异}{124}{subsection.8.5.1} {8.6}IO阻塞}{126}{section....
Oracle数据库中,自动序列通常通过`CREATE SEQUENCE`语句来创建。序列对象可以生成唯一的整数,用于主键或其他需要唯一值的字段。例如: ```sql CREATE SEQUENCE seq_name START WITH 1 INCREMENT BY 1; ``` ...
`identity`适用于支持自动增长字段的数据库(如SQL Server),`sequence`适用于支持序列的数据库(如Oracle),`native`则根据数据库类型选择合适的策略。 5. **Oracle字符串连接**:在Oracle SQL中,连接字符串的...