mybatis的resultmap

项目中的查询一般不局限于单表操作,这时查询出来的数据接收的器皿就显得比较重要;

例子:

现在有三个表,对应的bean如下:

class UserDetail{

        private String username;
private String name;
private int dept_id;
private int dormitory_id;
private String email;
private String ic_card;

       ...........get and set...............

}

class Dept{

        private int dept_id;
private String dept;
private String dept_remark;

............get and set...........

}

class Dormitory{

        private int dormitory_id;
private String dormitory_number;
private String room_number;

.............get and set ..............

}

从三个表的成员可以看出,UserDetail表中保存了另两个表的id,所以要取出准确的数据需要关联其他两个表查询

在mybatis中,如果还想使用resultType,那么最先想到的肯定是把sql查询出来的结果集重新写成一个bean,这个当然可以实现,

而mybatis中提供了resultMap.使用如下:

1. 在UserDetail中添加另外两个表的成员:

private Dept dept;
private Dormitory dormitory;

.......get and set.......

2. 在mybatis中的映射文件xml中配置resultMap:

 <resultMap type="UserDetail" id="testmap">   
        <result column="username" property="username" />  
        <result column="name" property="name" />  
        <result column="email" property="email" />  
        <result column="ic_card" property="ic_card" />
       <!-- column为sql中的字段名,priperty为bean中的属性 --> 
        <!-- association: 添加关联的两个bean,对应的属性及column-->  
        <association property="dormitory" javaType="com.cen.entity.Dormitory">  
            <!-- id:关联查询用户的唯一标识 column:指定唯一标识用户信息的列 javaType:映射到user的哪个属性 -->  
            <result column="dormitory_number" property="dormitory_number" />  
            <result column="room_number" property="room_number" />  
        </association>
        <association property="dept" javaType="com.cen.entity.Dept">
             <result column="dept" property="dept" /> 
        </association>  
      </resultMap>  

这样就可以使用resultmap:   ----->resultMap="testmap"

代码中就可以使用如:List<UserDetail> list 的形式全部接收

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值