ibatis连表查询出关联的所有数据_ibatis存连表的数据-程序员宅基地

技术标签: ibatis连表查询  数据库  

场景如下:

业务A中有多个表: T1,,T2,,T3,,T4。其中T1对T2 是1对n的关系,T2对T3是1对n的关系,T3对T4是1对1的关系

现在需要查询出T1及所有关联的数据,java bean描述如下:

public class T1 {
   //......
   private List<T2> lsT2;
}

public class T2{
  //.......
  private List<T3> lsT3;

}

public class T3{
   //......
   private T4 t4;
}


ibatis中如何配置才能使得查询所有的数据呢?

在resultMap配置中可以配置属性对应的resultMap

﹤resultmap id="demoresultmap" class="xxx"﹥   

﹤result property="xxx" resultmapping="resultMap_id"/﹥   

 ﹤/resultmap﹥
通过配置多个resultmap,并通过属性串联起来,就可以查询出所有的数据

但resultmapping中的id命名会有要求,需要是       " 别名.其它"

还可以对resultmap指定groupBy,这样可以根据某些字段进行分组来得到组内所有数据

相应的sql需要返回所有resultmap中指定的属性对应的列名

除了上述实现基本的查询外,我们还可以对T2表的数据进行分页,只需要在sql中对T2表的数据进行子查询,查到相应的分页数据,再跟其它表进行连表查询即可。

例:

<resultmap id="studentResult" class="student">
   <result property="id" column="id">
   <result property="lsStuCourse" resultmapping="student.studentCourseResult">
</resultmap>

<resultmap id="student.studentCourseResult" class="studentCourse">
   <result property="courseId" column="course_id">
</resultmap>



在ibatis的这种做法还是前辈们告诉我的,还是需要多向前辈学习才行。



版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/u012009613/article/details/52454214

智能推荐

对今日头条android端的一次简单分析(上)_chromium libwebp.so libstatic-webp.so-程序员宅基地

文章浏览阅读6.7k次。前言闲来无事,正看着百度新闻,突然灵感一闪,何不研究下一款新闻app,那就从今日头条开始吧。第一步1.1、轮廓分析这里使用压缩软件打开,主要看lib目录及assets目录。 1.2、lib目录lib目录主要是放一些库或jar包,打开后发现,只有一个armeabi目录,我们知道x86/x86_64/armeabi-v7a/arm64-v8a设备都支持armeabi架构的.so文件,所以一个目录也是可_chromium libwebp.so libstatic-webp.so

Linux 有线网络驱动实验(PHY芯片LAN8720)_lan8720每秒可以发送几次数据-程序员宅基地

文章浏览阅读2.4k次,点赞3次,收藏20次。网络驱动是linux 里面驱动三巨头之一,linux 下的网络功能非常强大,嵌入式linux 中也常常用到网络功能。前面我们已经讲过了字符设备驱动和块设备驱动,本章我们就来学习一下linux 里面的网络设备驱动。_lan8720每秒可以发送几次数据

Go内置关键字分析(二)_for i, x := range nums-程序员宅基地

文章浏览阅读665次。Go语言25个内置关键字分析(一):https://blog.csdn.net/sinat_24568041/article/details/80904271Go关键字按类型不同做如下区分(注:图片来自网络,若有侵权,请联系删除):2.2引用类型(1) Map作用:用于声明map类型数据 a.Map 是一种无序的键值对的集合。Map 最重要的一点是通过 key 来快速检索数据,key 类似于..._for i, x := range nums

GD32F103RCT6/GD32F303RCT6(6.2)USART串口库函数介绍(包含DMA库函数)-程序员宅基地

文章浏览阅读699次,点赞6次,收藏10次。GD32教程 单片机 嵌入式 串口 向上代码兼容GD32F303RCT6中使用

宁波大学2013 计算机应用基础 高级c语言程序 练习册答案,计算机应用基础A1-程序员宅基地

文章浏览阅读286次。spContent=软件定义未来,软件实现了用计算机解决真实世界的各种问题。自计算机诞生之日起,人们探索的重点不仅在于建造运算速度更快、处理能力更强的计算机,而且在于开发能让人们更有效使用这种计算设备的各种软件。本课程作为大学阶段的第一门计算机基础课程,主要介绍面向过程的结构化程序设计思想及方法,为你打开软件设计与开发的大门。数字时代呼啸而来,懂得程序设计,就能更好的在数字海洋中自由遨游。本课程面..._c语言程序设计孙改平答案

mybatisplus 更新数据时(update updatebyId) 将指定字段的null值更新到数据库_mybatis updatebyid 空值更新入库-程序员宅基地

文章浏览阅读4.1k次,点赞2次,收藏3次。mybatisplus 在封装更新语句时 会默认不更新值为null的字段;有的时候我们需要指定某个字段为null时更新进去又不想去mapper.xml 写update sql于是就有了如图 在对应的字段上面添加 @tableField注解注意 jdbcType 必须要有 不然会报错 无效列类型value 对应的是数据库的字段名另外在update的时候运用此注解 还有以下作用有兴趣的可以多看看源码了解哈..._mybatis updatebyid 空值更新入库

随便推点

4.(css3布局)使用flex布局携程网首页案例_(css3布局)使用 flex 布局携程网首页案例-程序员宅基地

文章浏览阅读1.6k次,点赞2次,收藏10次。文章目录1. 携程网首页案例制作1.1 技术选型1.2 搭建相关文件夹1.3 设置视口标签以及引入初始化样式1.4 初始化样式1.5 模块名字划分1.6 常见flex布局思路1.7 背景线性渐变2. 代码实现2.1 search-index2.2 focus2.3 local-nav2.4 nav2.5 subnav-entry2.6 sales1. 携程网首页案例制作1.1 技术选型方案:我们采取单独制作移动页面方案技术:布局采取flex布局为主1.2 搭建相关文件夹参考:https_(css3布局)使用 flex 布局携程网首页案例

关于WindowsServer总是自动关机的问题-程序员宅基地

文章浏览阅读4.1k次。星期六一大早同事打电话给我,小镭啊,你快看看他们学校的vCenter中有一台虚拟机总是自动关机,你帮我看看是什么原因啊? 我登陆vCenter,观察了一段时间zyglpt这台虚拟机总是自动关机,时间在1到3个小时之间随机关机,刚开始还以为是集群的原因,可一想不可能啊?为了验证自己的想法,..._windowsserver2019系统为什么使用时会自动关机

Python异常处理和多线程_python多线程异常-程序员宅基地

文章浏览阅读1w次。异常处理 异常在程序的运行过程中发生的不正常的事件,会中断正在运行的程序。多线程 由于每个进程只要干一件事,所以,一个进程只要有一个线程,当然,想 Word这种复杂的进程可以有多个线程,多个线程可以同时执行,多线程的执行方式和多线程是一样的,也是由操作系统在多个线程之间快速切换,让每个线程都短暂得交替运行,看起来就像同时执行一样_python多线程异常

ERROR: failed to solve: cannot replace to directory /var/lib/docker/overlay2/v9nswpuh1b4kw561o6gqsny_failed to solve: error committing xylc11zf83b8r2bd-程序员宅基地

文章浏览阅读393次,点赞8次,收藏9次。写一下 .dockerignore 文件。_failed to solve: error committing xylc11zf83b8r2bdwfn0qlgv0: write /var/lib/

【python中级】 字符串join方法,将列表中的所有字符串连接_要将列表里的所有字符串加起来-程序员宅基地

文章浏览阅读880次。【python中级】 将列表中的所有字符串连接起来背景代码背景在mysql中增删改查,我们在封装接口的时候,希望接口更加通用;比如下图这种封装接口:有这么一个需求:我们希望传一个数据表的字段列表,插入值的列表来通用我们的接口;但在sql语句中,又需要转化成字符串,即将字符列表转化为字符串!代码使用字符串的join方法:代码如下:str_list= ["camera_ip","camera_port","username","password","algo_type","warningIp_要将列表里的所有字符串加起来

vue打包出0kb的文件,导致部署到平台后报错404的问题_vue3.0 打包0kbcss-程序员宅基地

文章浏览阅读967次。问题描述:vue项目,进行打包后,在前端和后端本地都可以非常正常的跑起来,但部署到平台,提示 chunk-xxx.css文件找不到,报错404!解决办法:问题定位:那个提示找不到的css文件是0kb的,怀疑和这个有关,试了很多种乱七八槽的高级操作,最终,将代码中的<style></style>里面注释掉的css代码删除掉,重新打包,这次打出来的包就没有0kb文件了,再次部署,成功了~网上有人说是这个原因:springboot1时,0kb的css不会有什么问题,s._vue3.0 打包0kbcss

推荐文章

热门文章

相关标签