mybatis中Oracle数据库如何实现主键自增
2017-06-06 16:50
501 查看
我们在使用mybatis框架进行数据库插入操作时,经常会遇到主键自增的问题!MySQL和SQLserver本身就提供了主键自增的功能,所以我们用起来很方便,但是Oracle没有直接提供主键自增功能,这个时候我们可以通过下面几种方式实现主键自增效果:
1.单独插入一条数据(两种方式)
第一种:每次都会从数据库里查一遍,从最大值+1
第二种:Oracle提供了序列功能,创建一个sequences,sequences每次会从上一次基础上+1
2.批量插入数据
因为mybatis批量操作需要循环,没办法用上面的方法循环自增,这时候我们可以通过触发器实现id自增!
创建一个触发器(Triggers)
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;
相关文章推荐
- MyBatis面对Oracle数据库如何实现主键列自增长
- mybatis如何实现mysql数据库的主键返回主键返回
- 更新oracle数据库表如何实现主键自增长
- 如何对oracle数据库中的表设置主键自增?
- 如何细粒度地控制你的MyBatis二级缓存(mybatis-enhanced-cache插件实现)
- 前台页面如何实现Oracle数据库表有…
- [转]mysql如何设置主键和外键,实现级联更新、级联删除
- 一个通用的单元测试框架的思考和设计07-实现篇-自动管理测试数据-如何为自增长主键id赋值
- 如何对oracle数据库中的表设置主键自增?
- MyBatis中如何实现两个外键指向同一个类
- 使用mybatis 实现批量插入,主键自增长
- oracle 如何实现主键id自增,或自动生成
- 如何实现ORACLE数据库完整备份
- MyBatis使用MySQL数据库如何在执行insert操作后返回自增的主键
- 如何细粒度地控制你的MyBatis二级缓存(mybatis-enhanced-cache插件实现)
- mysql如何设置主键和外键,实现级联更新、级联删除
- SQL SERVER数据库 LINK ORACLE数据库 如何实现在SQL SERVER查询分析器中对ORACLE查询
- 如何对oracle数据库中的表设置主键自增?
- 如何实现Oracle数据库之间的数据同步?
- MyBatis插入数据后如何获得主键值