mybatis中Oracle数据库如何实现主键自增

xiaoxiao2021-02-27  124

我们在使用mybatis框架进行数据库插入操作时,经常会遇到主键自增的问题!MySQL和SQLserver本身就提供了主键自增的功能,所以我们用起来很方便,但是Oracle没有直接提供主键自增功能,这个时候我们可以通过下面几种方式实现主键自增效果: 1.单独插入一条数据(两种方式)      第一种:每次都会从数据库里查一遍,从最大值+1 <selectKey keyProperty="userId" resultType="String" order="BEFORE"> select max(USER_ID)+1 from SYS_USER </selectKey>   第二种:Oracle提供了序列功能,创建一个sequences,sequences每次会从上一次基础上+1 <selectKey keyProperty="userId" resultType="String" order="BEFORE"> SELECT SEQ_SYS_USER.NEXTVAL FROM DUAL </selectKey> 2.批量插入数据     因为mybatis批量操作需要循环,没办法用上面的方法循环自增,这时候我们可以通过触发器实现id自增! 创建一个触发器(Triggers) create or replace trigger INSERT_PRIMARY before insert on SYS_USER for each row declare -- local variables here user_id number(16); begin select seq_sys_user.nextval into user_id from dual; :new.user_id:=user_id; end INSERT_PRIMARY;

转载请注明原文地址: https://www.6miu.com/read-15444.html

最新回复(0)