这篇文章主要介绍了MyBatis3.X复杂Sql查询的相关资料,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
MyBatis3.X复杂Sql查询
MyBatis3.X的resultMap
1.Mybatis的sql语句返回的结果有两种
- resultType
- 查询出的字段在相应的pojo中必须有和它相同的字段对应,或者基本数据类型
- 适合简单查询
- resultMap
需要自定义字段,或者多表查询,一对多等关系,比resultType更强大
适合复杂查询
<!-- id 指定查询列列的唯⼀一标示 column 数据库字段的名称 property pojo类的名称 --> select id , title as video_tile, summary, cover_img from video where id = #{video_id}
ResultMap复杂对象一对一查询结果映射之association
association:映射到POJO的某个复杂类型属性,比如订单order对象里面包含user对象
<!-- 名称空间,需要保存全局唯一,最好是和dao层的Java接口一致 可以映射sql语句到对应的方法名参数和返回值 mybatis是使用接口动态代理 --> <!-- 配置属性一对一 property对应videoOrder里面的User javaType对应这个属性的类型 --> <!--一对一订单查询,订单内部包含用户属性--> select o.id id, o.user_id, o.out_trade_no, o.state, o.total_fee, o.video_id, o.video_title, u.name, u.head_img, u.phone from video_order o left join user u on o.user_id = u.id
代码
// resultmap association关联查询 VideoOrderMapper videoOrderMapper =sqlSession.getMapper(VideoOrderMapper.class); List videoOrderList = videoOrderMapper.queryVideoOrderList(); System.out.println(videoOrderList.toString());
ResultMap复杂对象一对多查询结果映射之collection
collection: 一对多查询结果查询映射,比如user有多个订单
<!-- property 填写pojo类中集合类属性的名称 ofType 集合⾥里里⾯面的pojo对象 --> <!--配置主键,管理理order的唯⼀一标识--> select u.id, u.name, u.head_img, u.phone, o.id order_id, o.out_trade_no, o.user_id, o.state, o.total_fee, o.video_id, o.video_title from user u left join video_order o on u.id =<span style="color:transparent">来源gaodai#ma#com搞*!代#%^码$网</span> o.user_id
代码
// resultmap association关联查询 VideoOrderMapper videoOrderMapper =sqlSession.getMapper(VideoOrderMapper.class); //resultmap collection测试 List userList = videoOrderMapper.queryUserOrder(); System.out.println(userList.toString());
Mybatis3.X ResultMap复杂对象查询总结
总结ResultMap的复杂对象查询
- association映射的是一个pojo类,处理一对一的关联关系。
- collection映射的一个集合列表,处理的是一对多的关联关系。
- 模板
到此这篇关于MyBatis3.X复杂Sql查询的文章就介绍到这了,更多相关MyBatis复杂Sql查询内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
您可能感兴趣的文章:
- 结合mybatis-plus实现简单不需要写sql的多表查询
- Mybatis传递多个参数进行SQL查询的用法
- 实例讲解Java的MyBatis框架对MySQL中数据的关联查询
- Java的MyBatis框架中对数据库进行动态SQL查询的教程
- MyBatis实践之动态SQL及关联查询
- 详解MyBatis直接执行SQL查询及数据批量插入
以上就是MyBatis3.X复杂Sql查询的语句的详细内容,更多请关注gaodaima搞代码网其它相关文章!