您的位置:首页 > 其它

mybatis关联查询

2017-03-27 14:24 120 查看
一、使用resultMap完成高级映射

1 一对一查询

其他略,注意关联信息的映射



<!-- 一对一查询resultMap -->
<resultMap type="orders" id="ordersUserResultMap">
<!-- 完成了订单信息的映射配置 -->
<!-- id:订单关联用户查询的唯 一 标识  -->
<id column="id" property="id"/>
<result column="user_id" property="userId"/>
<result column="number" property="number"/>
<result column="createtime" property="createtime"/>
<result column="note" property="note"/>

<!-- 下边完成关联信息的映射
association:用于对关联信息映射到单个pojo
property:要将关联信息映射到orders的哪个属性中
javaType:关联信息映射到orders的属性的类型,是user的类型
-->
<association property="user" javaType="user">
<!-- id:关联信息的唯 一标识  -->
<!-- property: 要映射到user的哪个属性中-->
<id column="user_id" property="id"/>
<!-- result就是普通列的映射 -->
<result column="username" property="username"/>
<result column="sex" property="sex"/>
</association>
</resultMap>


resultType:要自定义pojo保证sql查询列和pojo的属性对应,简单,广泛

resultMap:需要配置一个resultMap,稍复杂。延迟加载只能用resultMap,获取关联信息方便

2 一对多查询

订单和订单详情是一对多的关系,关联查询出现重复数据





3 一对多复杂查询

需求:

查询所有用户信息,关联查询订单及订单明细,订单明细信息中关联查询商品信息

sql:

主查询表:用户信息

关联查询:订单,订单明细



同样的sql语句,同样的查询结果,但是主查询表不一样了,返回结果应该是一个用户

对应的3个pojo







resultMap的写法



4 多对多查询

需求1:

查询显示字段:用户账号、用户名称、用户性别、商品名称、商品价格(最常见)

企业开发中常见明细列表,用户购买商品明细列表,

使用resultType将上边查询列映射到pojo输出。

用户可以重复

需求2:

查询显示字段:用户账号、用户名称、购买商品数量、商品明细(鼠标移上显示明细)

使用resultMap将用户购买的商品明细列表映射到user对象中。

用户不许重复
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  mybatis