当遇到要保存一个对象同时要保存多个依赖对象的值时,我们需要在同一个事务中进行处理,那么就需要拿到前一个被依赖对象的ID值或者用程序产生全局唯一ID,但是事务未提交我们怎么去拿ID呢?下面的例子是mybatis对此类需求的支持...目前MYSQL,SQLSERVER主流的数据都支持自动递增字段,ORACLE要使用序列和触发器来实现自动递增。
第一步:
在Mybatis Mapper文件中添加属性“useGeneratedKeys”和“keyProperty”,其中keyProperty是Java对象的属性名!
<insert id="insert" parameterType="Spares"
useGeneratedKeys="true" keyProperty="id">
insert into spares(spares_id,spares_name,
spares_type_id,spares_spec)
values(#{id},#{name},#{typeId},#{spec})
</insert>
第二步:
Mybatis执行完插入语句后,自动将自增长值赋值给对象Spares的属性id。因此,可通过Spares对应的getter方法获取!
/**
* 新增备件
* @author hellostory
* @param spares
* @return
*/
@RequestMapping(value = "/insert")
@ResponseBody
public JsonResponse insert(Spares spares) {
int count = sparesService.insert(spares);
System.out.println("共插入" + count + "条记录!"
+ "\n刚刚插入记录的主键自增长值为:" + spares.getId());
。。。
上一篇: 使用 Servlet3.0 Comet 实现聊天室功能源码 2012-02-21 23:55
下一篇: JSTL EL formatDate格式化毫秒时间戳的问题 2012-01-18 16:43
Copyright©2007-2012 www.txdnet.cn All Rights Servered. Powered By JITCMS V1.5 京ICP备09017503号.
Host By www.fjjsp.com
.