码迷,mamicode.com
首页 > 其他好文 > 详细

Mybatis级联操作

时间:2014-12-12 15:01:28      阅读:178      评论:0      收藏:0      [点我收藏+]

标签:style   ar   color   sp   strong   on   数据   bs   ad   

  对于Mybatis级联操作,网上好多资料都在讲级联查询的一些Mapping的标签,但是对于级联更新和插入的资料不是很多,但是这似乎是和Mybatis关系不大,只是之前用Hibernate用习惯了,感觉这些东西是由持久层框架l来维护的,由于Mybatis比Hibernate高效,摒弃了这些,所以对于INSERT和UPDATE的级联关系大部分是由数据库本身去维护的。


级联更新

 有两个对象ABB的主键是A的外键,先需求是把B的保存后,在A的外键那随之更新:

(1)先插入B到数据库中,

(2)从数据库在查出

(3)将B对象setA中 更新A(或者插入B到数据库后得到其ID主键然后单纯的update A的该字段)

写法:

 <update id="updateUser" parameterType="User">

update user set

username=#{username},password=#{password},role=#{role},

photo=#{photo.id},

emails=#{emails}

where id=#{id}

</update>

 

返回插入或者更新的主键在Mapping中配置加上其中idMODEL对象表示逐渐的属性值:

keyProperty="id"  useGeneratedKeys="true"

级联删除:

 如果数据库外键关联设置为CASEADE:

      如果要删除多的一方,则可直接删除,并且与之关联的一方也删除了

  如果数据库关联外键没有设置为CASEADE

在删除时需要先把引用外键的一方设置为null,然后在删除。

级联插入;

先插入一条一的记录,然后得到其主键

然后查找出刚插入进去的记录,通过多的一方的SET方法将其SET进去

然后将多的一方的对象统一SAVE进去。

Mybatis级联操作

标签:style   ar   color   sp   strong   on   数据   bs   ad   

原文地址:http://blog.csdn.net/liyantianmin/article/details/41893249

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!