MyBatis与IBatis插入返回主键
2016-04-09 14:48
351 查看
一、MyBatis插入返回主键
在使用MyBatis做持久层时,insert语句默认是不返回记录的主键值,而是返回插入的记录条数;如果业务层需要得到记录的主键时,可以通过配置的方式来完成这个功能。
针对Sequence主键而言,在执行insert sql前必须指定一个主键值给要插入的记录,如Oracle、DB2,可以采用如下配置方式:
1.返回主键方式
在使用MyBatis做持久层时,insert语句默认是不返回记录的主键值,而是返回插入的记录条数;如果业务层需要得到记录的主键时,可以通过配置的方式来完成这个功能。
针对Sequence主键而言,在执行insert sql前必须指定一个主键值给要插入的记录,如Oracle、DB2,可以采用如下配置方式:
<insert id="addOracle" parameterType="Student"> <selectKey resultType="java.lang.Integer" order="BEFORE" keyProperty="id"> select seq_t_student .nextval from dual </selectKey> insert into t_student(id,name) values(#{id},#{name}) </insert>针对自增主键的表,在插入时不需要主键,而是在插入过程自动获取一个自增的主键,比如MySQL,可以采用如下两种配置方式:
1.返回主键方式
<insert id="add" parameterType="Student"> <selectKey resultType="java.lang.Integer" order="AFTER" keyProperty="id"> SELECT LAST_INSERT_ID() AS id </selectKey> insert into t_student(name) values(#{name}) </insert>2.设置useGeneratedKeys="true"属性方式
<insert id="add1" parameterType="Student" useGeneratedKeys="true" keyProperty="id"> insert into t_student(name) values(#{name}) </insert>说明:本人于ITEYE创建于2014年,现转移到CSDN
相关文章推荐
- 第二十期 天光的画法
- CCF-201509-2 日期计算
- [IO]——封装输入
- POJ-2195-Going Home(最小费用最大流/二分图)
- spark1.6.0+Hadoop2.6.0+Scala-2.11.7 搭建分布式集群
- Android中 Paint 字体、粗细等属性的一些设置
- 汇编基础知识(一)
- STM32的bootloader IAP编程
- 菜鸟学人工神经网络(C++11实现)一:前馈神经网络
- 策略模式
- Excel常用函数总结--记一次数据操作中使用函数
- 深入理解javascript原型和闭包系列 深入理解javascript原型和闭包(14)——从【自由变量】到【作用域链】
- 事件传递
- Android:TextInputLayout的简单使用
- Something about Compile error
- CCF-201509-1 数列分段
- 自定义EL函数库
- 直接拿来用!最火的Android开源项目
- HTML几个标签使用
- Coredata — 入门使用