1、建表
create table blog(blogId number(10) not null primary key, blogName varchar2(40) not null, username varchar2(10) null);
2、建序列:用于表的主键
create sequence blog_autoinc_seq minvalue 1 maxvalue 999999999 startwith 1 increment by 1 nocycle order;
3、建触发器:建立表之前,先检索序列的下一位的值用于插入到表的blogId
create or replace trigger blog_autoinc_tg
before insert on blog for each row
begin select blog_autoinc_seq.nextval into :new.blogId from dual;
end blog_autoinc_tg;
4、插入表数据测试
insert into blog values('','清风沐沐','yingsuzhilie');
insert into blog values('','小溪','zhaoxi');
完成,
如果写了触发器,使用mybatis插入时,把id这一列空出即可;否则得取序列值,如下:
5、取序列值
序列的下一位值:select blog_autoinc_seq.nextval from dual;
序列的当前的值:select blog_autoinc_seq.curral from dual;
6、mybatis中insert语句
<insert id="insertAutoKey" parameterType="Map">
<selectKey keyProperty="id" resultType="int" order="BEFORE">
select blog_autoinc_seq.nextval from dual
</selectKey>
insert intoblog(blogid,blogName,username)
values(#{id},,#{blogname},#{username})
</insert>