MyBatis插入时候获取自增主键方法
2016-05-20 00:00
573 查看
摘要: MyBatis插入时候获取自增主键方法
MyBatis 3.2.6插入时候获取自增主键方法有二
以MySQL5.5为例:
方法1:
方法2:
插入前实体id属性为0;
插入后实体id属性为保存后自增的id;
mysql、sqlserver等数据库本身带有主键自增长像auto_increment的功能可以直接使用
useGeneratedKeys=”true”来实现,比如下面的配置
而oracle则不行,oracle主键自增长是通过sequence实现的,所以这种方式就不可以了,需要使用:
1.先通过sequence查出来id,再insert
2.直接insertsequence.nextval,如下
MyBatis 3.2.6插入时候获取自增主键方法有二
以MySQL5.5为例:
方法1:
<insert id="insert" parameterType="Person" useGeneratedKeys="true" keyProperty="id"> insert into person(name,pswd) values(#{name},#{pswd}) </insert>
方法2:
<insert id="insert" parameterType="Person"> <selectKey keyProperty="id" resultType="long"> select LAST_INSERT_ID() </selectKey> insert into person(name,pswd) values(#{name},#{pswd}) </insert>
插入前实体id属性为0;
插入后实体id属性为保存后自增的id;
mysql、sqlserver等数据库本身带有主键自增长像auto_increment的功能可以直接使用
useGeneratedKeys=”true”来实现,比如下面的配置
<insert id=”add” useGeneratedKeys=”true” keyProperty=”id” parameterType=”Auth”> insert into s_user_auth (id,user_id, user_name) values(#{id},#{userid},#{username}) </insert>
而oracle则不行,oracle主键自增长是通过sequence实现的,所以这种方式就不可以了,需要使用:
1.先通过sequence查出来id,再insert
<insert id=”add” useGeneratedKeys=”false” keyProperty=”id” parameterType=”Auth”> <selectKey resultType=”String” keyProperty=”id” order=”BEFORE”> select yoursequence.nextval as id from dual </selectKey> insert into s_user_auth (id,user_id, user_name) values(#{id},#{userid},#{username}) </insert>
2.直接insertsequence.nextval,如下
<insert id=”add” useGeneratedKeys=”false” keyProperty=”id” parameterType=”Auth”> insert into s_user_auth (id,user_id, user_name) values(yoursequence.nextval,# {userid},#{username}) </insert>
相关文章推荐
- 数据密集型系统架构设计
- 异步消息传递技术的比较:JMS、AMQP和MQTT
- Oracle job实现自动化任务
- node.js , webstrom ,mongodb安装的时候注意事项。不错的markdown教程
- 项目常用工具类整理(四)--日志管理
- Qt控件及示例
- Thinking in Java学习笔记,可以被Future.cancel()中断的资源
- TQ210添加永不休眠选项
- Servlet
- 微信三级分销是个什么鬼?
- 谁说程序员都找不到女朋友?都是骗子!
- 你的网站首页完成最重要的使命了吗?
- Linux下出现Read-only file system的解决办法
- How to install python, wxPython and ride on CENTOS
- 通达OA迈向"开放协同,定制成功"
- Vert.x源码-创建集群
- Layout自动布局(2)-手写代码
- Layout(3)-自动布局VFL
- Layout(Masonry)--自动布局使用第三方
- C Primer Plus 第5章 运算符、表达式和语句 5.4 表达式和语句