resultType和resultMap的区别
- resultType
- 使用resultType实现较为简单,如果pojo中没有包括查询出来的列名,需要增加列名对应的属性,即可完成映射
- 如果没有查询结果的特殊要求建议使用resultType
- resultMap
- 需要单独定义resultMap,实现有点麻烦,如果对查询结果有特殊的要求,使用resultMap可以完成将关联查询映射pojo的属性中
- resultMap可以实现延迟加载,resultType无法实现延迟加载。
关系映射
association 1对1映射
实体类:参照gitee integration|mybatis-relation
订单类 OrdersCustomDTO
用户类 SysUser
```xml
```json{"id": 1,"userId": 1,"number": "1000010","note": null,"createTime": "2019-07-10T14:38:04","updateTime": "2019-07-10T14:38:04","delFlag": "NORMAL","user": {"id": 1,"userName": "王五","birthday": null,"sex": "FEMALE","address": null,"createTime": null,"updateTime": null,"delFlag": null,"ordersList": null},"orderDetails": null,"userName": null,"sex": null,"address": null}
collection 1对多映射
实体类:参照gitee integration|mybatis-relation
订单类 Orders
订单详情 OrderDetail
<!-- 查询订单(关联用户)及订单明细的resultMap --><!-- 总结2--><!-- mybatis使用resultMap的collection对关联查询的多条记录映射到一个list集合属性中。--><!-- 使用resultType实现:将订单明细映射到orders中的orderdetails中,需要自己处理,使用双重循环遍历,去掉重复记录,将订单明细放在orderdetails中。--><resultMap type="net.gaox.relation.entity.Orders" id="ordersAndOrderDetailResultMap" extends="OrdersUserResultMap"><!-- 订单信息 --><!-- 关联用户信息 --><!-- 使用extends继承,不用在中配置订单信息和用户信息的映射--><!-- 关联订单明细信息一个订单关联查询出了多条订单明细,要使用collection映射collection:对关联查询到的多条记录映射到集合中property:将关联查询到的多条记录映射到orders类的那个属性ofType:指定映射的集合属性中pojo的类型--><collection property="orderDetails" ofType="net.gaox.relation.entity.OrderDetail"><!-- id:唯一标识property:要将订单明细的唯一标识映射到com.mybatis.entity.OrderDetail的那个属性 --><id column="orderdetail_id" property="id"/><result column="items_id" property="itemsId"/><result column="items_num" property="itemsNum"/><result column="orders_id" property="ordersId"/></collection></resultMap>
{"id": 1,"userId": 1,"number": "1000010","note": null,"createTime": "2019-07-10T14:38:04","updateTime": "2019-07-10T14:38:04","delFlag": "NORMAL","user": {"id": 1,"userName": "王五","birthday": null,"sex": "FEMALE","address": null,"createTime": null,"updateTime": null,"delFlag": null,"ordersList": null},"orderDetails": [{"id": 1,"ordersId": 1,"itemsId": 1,"itemsNum": 1,"createTime": null,"updateTime": null,"delFlag": null,"item": null},{"id": 2,"ordersId": 1,"itemsId": 2,"itemsNum": 3,"createTime": null,"updateTime": null,"delFlag": null,"item": null}]}
时间长了😌
