|
1.创建用户数据表
CREATE TABLE "USER"
(
"uid" number not null primary key,
uname varchar(20) not null,
upass varchar(20) not null
);
2.创建自动增长的序列
create sequence ID_SEQ
minvalue 1
maxvalue 999999999999999999999999999
start with 1
increment by 1
cache 20
order;
3.创建触发器,在执行插入操作的时候触发
create or replace trigger uid_trigger
before insert on "User"
for each row
begin
select id_seq.nextval into :new."uid" from dual;
end;
4.提交,检测一下自增长主键的设定
insert into "User"(uname,upass) values('李四','1233');
commit;
5.配合hibernate的使用情况:
在oracle中,如果已经建立好的数据库中使用了sequence ,则可以按照下面的步骤把它引入到Hibernate中:
在hbm.xml文件中如下配置
<id column="uid" name="id" type="integer">
<generator class="sequence">
<param name="sequence">id_seq</param>
</generator>
</id>
注意:hibernate对于sequence的主键要求是一定要是short,long或者integer,当你保存新对象的时候,hibernate会自动取ID_SEQ.NEXTVAL作为新对象的ID保存到数据库,所以不需要再使用触发器再来生成新记录的ID。 |
|