这里是修真院后端小课堂,每篇分享文从

【背景介绍】【知识剖析】【常见问题】【解决方案】【编码实战】【扩展思考】【更多讨论】【参考文献】八个方面深度解析后端知识/技能。

大家好,我是IT修真院深圳分院一枚正直纯洁的java程序员。

本篇分享的是:【mybatis多表联查】

(1)背景介绍

在客观世界中,对象很少是孤独存在的,如班级与学生之间的关系,学生与课程之间的关系,它们的实例之间可以互相访问,这就是关联关系。MyBatis 的关联映射可以大大简化持久层数据的访问,关联关系的分类如下:

(2)知识剖析

  • 一对一: 一个班主任只属于一个班级,一个班级也只能有一个班主任

  • 一对多:一个班级有多个学生,一个学生只属于一个班级

  • 多对多:一个学生可以选多门课,一门课可以有多个学生选

(3)常见问题

为什么不建议使用外键把多张表关联起来?

(4)解决方案

若是高并发大流量事务场景,使用外键可能容易造成死锁,以及数据库资源更快出现瓶颈,所以一般互联网行业不建议使用,

多使用再企业内部,比如ERP软件,早期的MIS系统等。

(5)编码实战

(6)拓展思考

(7)参考文献

【参考一】https://blog.csdn.net/u010858605/article/details/70145733

【参考二】https://blog.csdn.net/lu1024188315/article/details/78758943

(8)更多讨论

Q1:提问人:如何使用mybatis进行批量查询?

A1:回答人(可以是分享人,也可以是其他学员):回答

批量查询:

<updateid="updateBatch"parameterType="list">

            update course<trim prefix="set" suffixOverrides=","><trim prefix="name=case" suffix="end,"><foreach collection="list" item="item" index="index"><if test="item.name!=null">when id=#{item.id} then #{item.name}</if></foreach></trim><trim prefix="title =case" suffix="end,"><foreach collection="list" item="item" index="index"><if test="item.title!=null">when id=#{item.id} then #{item.title}</if></foreach></trim></trim>where<foreach collection="list" separator="or" item="item" index="index">id=#{item.id}</foreach>
</update>

这一句相当于

Q2:提问人:那怎么进行批量插入呢?
A2:回答人(可以是分享人,也可以是其他学员):回答

  1. <insert id="addTrainRecordBatch" useGeneratedKeys="true" parameterType="java.util.List">

  2. <selectKey resultType="long" keyProperty="id" order="AFTER">

  3. SELECT

  4. LAST_INSERT_ID()

  5. </selectKey>

  6. insert into t_train_record (add_time,emp_id,activity_id,flag)

  7. values

  8. <foreach collection="list" item="item" index="index" separator="," >

  9. (#{item.addTime},#{item.empId},#{item.activityId},#{item.flag})

  10. </foreach>

  11. </insert>

Q3:提问人:那还有另外一种,多对一是怎么回事呢?

A3:回答人(可以是分享人,也可以是其他学员):回答

多对一跟一对一mybatis的配置文件其实并没有什么区别,只不过以哪张作为主表,在字段上有点区别?

(9)鸣谢

(10)结束语

PPT链接 视频链接

今天的分享就到这里啦,欢迎大家点赞、转发、留言、拍砖~

------------------------------------------------------------------------------------------------------------
“我们相信人人都可以成为一个工程师,现在开始,找个师兄,带你入门,学习的路上不再迷茫。

技能树.IT修真院

mybatis多表联查相关推荐

  1. Mybatis多表联查简简单单

    Mybatis多表联查 1.一对一关系`association` 2.一对多关系`collection` 3.多对多关系 Mybatis中实现了对数据库中的数据进行封装,那么进行多表查询时就会遇到查询 ...

  2. 【mybatis】mybatis多表联查,存在一对多关系的,实体中使用List作为字段接收查询结果的写法...

    实体如下: IntegralGoods  积分商品 IntegralGoodsImg 积分商品图片 ShelfLog 积分商品自动上架记录 IntegralGoods :IntegralGoodsIm ...

  3. 数据库多表查询 myBatis四表联查

    查询目标 user表 role表 角色和菜单的关系 menu表 funs表(功能) 表和表的关系 1.user对role 是多对一role对user是一对多即一个user对应一个role 一个role ...

  4. jpi多表联查_使用mybatis进行多表联查

    一.使用mybatis的基本步骤 1.导入jar包 2.配置文件 3.使用配置文件完成操作 二.实战演习 需求:教师表里有教师id和教师姓名 学生表里有学生id,姓名,年龄,教师id 一个教师有多个学 ...

  5. 使用mybatis进行四表联查

    文章目录 一.问题背景 二.实际问题 三.问题解决 四.sql语句与XML映射文件 五.测试 一.问题背景 先数据库有用户表user.角色表role.菜单表menu.功能表funs和角色菜单关系表ro ...

  6. MyBatis Plus多表联查方法

    MyBatis Plus是一款针对MyBatis框架的增强工具, 它提供了很多方便的方法来实现多表联查. 你可以使用MyBatis Plus的selectPage方法来实现多表联查, 该方法接收一个Q ...

  7. MyBatis如何实现多表联查

    目录 一.什么是级联 二.实现多表联查的方式 方式一:通过xml配置文件 1.一对一级联步骤 2.一对多联步骤 方式二:使用映射器注解方式 1.一对一映射 2.一对多映射 三.级联的缺陷 一.什么是级 ...

  8. 6.2 、MyBatis 高级映射(resultMap 标签多表联查 , 一对多,多对一关系)

    文章目录 一.创建表结构,添加数据,实现表中数据的关联关系 二. association 标签:用于一对一.多对一场景使用 1.实现一对一,多对一关系结果集映射 1.1 按照查询嵌套处理 1.2 按照 ...

  9. 零 XML 多表联查

    mul-table-query 本文项目链接:超级好用的多数据源,多表联查工具, 专注 java 原生语法,零硬编码,零 xml 基于 mybatis-plus的多数据源配置,多表联查工具 效果:不改 ...

最新文章

  1. SAP PM 初级系列8 - PM 组织架构
  2. QML自定义IP地址输入框
  3. 基于单片机的简单的任务调度器
  4. [图像处理] Python+OpenCV实现车牌区域识别及Sobel算子
  5. mysql 开发基础系列22 SQL Model(带迁移事项)
  6. scala-数组操作
  7. Xamarin.Android开发实践(一)
  8. Kotlin入门(4)声明与操作数组
  9. 【PHP学习】—PHP连接数据库实现表单页面的验证功能(七)
  10. android开发_SimpleAdapter适配器
  11. 多目标数据关联基本方法
  12. Linux led_class子系统
  13. Linux Capability探索试验
  14. Pigeon中的Netty应用
  15. 西行漫记(6):Diversity
  16. Hadoop:大数据的特征4V
  17. Mysql cpu 占用率非常高 300%
  18. 智能货架是零售业的必经之路,普通人入局新零售有机会
  19. 网维服务器加硬盘,网维大师官网-帮助
  20. LeetCode之面试题01.02判定是否互为字符重排

热门文章

  1. Rotator Controller
  2. arthas 的初使用
  3. 关于select函数超时时间问题
  4. 如何使用安卓变声电话软件实现边变声边通话
  5. PPTV的走向:“卖身”求生或成唯一选择
  6. 填报表导出excel非可写单元格锁定问题
  7. 局域网虚拟机服务器搭建
  8. box-shadow快速上手
  9. 8.cookie的获取
  10. SAP中如何快速理解预留