Mybatis中运用小技巧(三)外键与对象的关系

来源:互联网 发布:java set集合 编辑:程序博客网 时间:2024/06/05 04:48

基于面向对象的思想,数据库的一个外键其实对应便是一个对象(因为一般来说,一张表就是一个类),而且在实际开发中,针对一个外键,我们总是希望能获得其更多的属性,这样可以让我们更方便的使用,也更加符合面向对象的思想,今天向大家展示的就是Mybatis中如何利用外键获得整个对象。

假设你现在正在写一个微博系统,你有两张表(microblog和user),microblog中有一个userId,是一个外键,对应user的主键id,因此当我们在取一个microblog的时候总是希望能一起取到其相应的user,因此micrblog类中需要有一个属性:

private User user;<span style="white-space:pre"></span>//这个属性是新增的
private Integer userid;<span style="white-space:pre"></span>//这个属性可以有

而在其对应的MyBatis的xml文件中,和userId列相关的属性有两个(当然,你也可以写成只有一个User,那么在取userid时只需要将格式更改为user.id,前段传到后台时其name也是这么写):

<result column="userId" property="userid" jdbcType="INTEGER" /><association property="user" column="userId" select="getUser"/>
<!--而getUser的写法如下-->
<select id="getUser" parameterType="int" resultType="cn.cslg.microblog.PO.User">         SELECT id, name, password, email, activecode, state FROM User WHERE id=#{id}  </select>

这样写之后,每次你从数据库中查出一个Microblog,MyBatis都会自动地帮你查出一个其对应的user,这样做可以更加方便高效地为你的代码服务,希望大家能有所感悟。

0 0
原创粉丝点击