涉及到数据库的级联查询,那肯定就要提到一对一,一对多,多对多这样的表关系,以及java程序与之对应的类和类之间的表现形式,我这里主要通过一对多的表关系给大家介绍以下MyBatis里面对于级联关系的处理,至于一对一与多对多,处理的方式和一对多是一样的.

无论怎么样,先在我们之前的crm数据库中添加两张表

一.员工表与部门表

use `crm`;DROP TABLE IF EXISTS `t_dept`;CREATE TABLE `t_dept` ( `dept_id` int(11) NOT NULL AUTO_INCREMENT, `dept_name` varchar(50) DEFAULT NULL, `dept_info` varchar(255) DEFAULT NULL, `dept_createDate` datetime DEFAULT NULL, PRIMARY KEY (`dept_id`)

) ENGINE=InnoDB CHARSET=utf8mb4;INSERT INTO `t_dept` VALUES ('1', '财务部', '财务结算,员工工资,企业盈亏', '2019-01-01 15:37:48'),

('2', '市场部', '市场调研,市场营销,产品企划', '2019-01-01 15:39:09'),

('3', '开发部', '公司技术引进、新产品开发研究、新技术推广应用、技术标准制定、技术指导与监督、协调、管理的权利,并承担执行公司规程及工作。', '2019-01-01 15:40:07');DROP TABLE IF EXISTS `t_emp`;CREATE TABLE `t_emp` ( `emp_id` int(11) NOT NULL AUTO_INCREMENT, `emp_name` varchar(50) NOT NULL, `emp_tel` varchar(11) NOT NULL, `emp_education` varchar(50) DEFAULT NULL, `emp_birthday` date DEFAULT NULL, `fk_dept_id` int(11) DEFAULT NULL, PRIMARY KEY (`emp_id`), KEY `fk_dept_id` (`fk_dept_id`), CONSTRAINT `t_emp_ibfk_1` FOREIGN KEY (`fk_dept_id`) REFERENCES `t_dept` (`dept_id`)

) ENGINE=InnoDB CHARSET=utf8mb4;INSERT INTO `t_emp` VALUES ('1', '宋江', '18800000001', '本科', '1990-01-01', '2'),

('2', '卢俊义', '18800000002', '研究生', '1991-02-01', '2'),

('3', '吴用', '18800000003', '研究生', '1994-02-11', '3'),

('4', '公孙胜', '18800000004', '研究生', '1989-10-13', '1'),

('5', '关胜', '18800000005', '本科', '1993-05-06', '2'),

('6', '林冲', '18800000006', '本科', '1996-11-11', '3'),

('7', '秦明', '18800000007', '大专', '1992-07-09', '2'),

('8', '呼延灼', '18800000008', '研究生', '1997-11-12', '3'),

('9', '花荣', '18800000009', '本科', '1996-10-30', '3'),

('10', '柴进', '18800000010', '大专', '1992-11-11', '1');

部门表,员工表是很明显的一对多,或者说多对一的表关系,这样的数据库表关系,我们在java代码中建立的javabean实体类应该是下面这个样子的

二.员工类与部门类

Dept.java:

import java.util.Date;import java.util.List;public class Dept { private int deptId; private String deptName; private String deptInfo; private Date deptCreateDate; private List employeeList; public int getDeptId() { return deptId;

} public void setDeptId(int deptId) { this.deptId = deptId;

} public String getDeptName() { return deptName;

} public void setDeptName(String deptName) { this.deptName = deptName;

} public String getDeptInfo() { return deptInfo;

} public void setDeptInfo(String deptInfo) { this.deptInfo = deptInfo;

} public Date getDeptCreateDate() { return deptCreateDate;

} public void setDeptCreateDate(Date deptCreateDate) { this.deptCreateDate = deptCreateDate;

} public ListgetEmployeeList() { return employeeList;

} public void setEmployeeList(List employeeList) { this.employeeList = employeeList;

} @Override

public String toString() { return "Dept{" + "deptId=" + deptId +

mybatis级联查询list_MyBatis手把手跟我做系列(四) ---级联查询与懒加载相关推荐

  1. 14、mybatis多表关联查询 association定义关联对象封装规则及懒加载

    文章目录 1.使用association单步查询 1).EmployeeMapper 2).EmployeeMapper.xml 3).Test 2.使用association进行分步查询 4).De ...

  2. 【MyBatis笔记】11-分步查询懒加载

    分步查询--懒加载模式 懒加载模式示例 不使用懒加载 使用懒加载 aggressiveLazyLoading lazyLoadTriggerMethods 所谓懒加载,也称延时加载,是指不一下子加载完 ...

  3. 40.MyBaits懒加载、一二级缓存、模糊查询、分页查询、动态SQL

    MyBaits_Day04 第一节.作业 <!-- 对getAllCateAndGoods做实现--><select id="getAllCateAndGoods" ...

  4. Mybatis学习第四天:Mybatis延迟加载懒加载,一级缓存,二级缓存,注解开发

    文章目录 Mybatis中的延迟加载 一对一进行延迟加载 一对多的延迟加载 缓存机制: 一级缓存 二级缓存 注解开发 注解开发--单表的增删改查 注解开发--建立表与实体类的对应关系 注解开发--多表 ...

  5. mybatis懒加载与缓存

    在接触mybatis时我们会学到接触小知识,关于懒加载的一些知识点还是需要亲自去测试一下才能加深理解; mybatis懒加载与缓存 mybatis对缓存的支持 mybatis一级缓存 mybatis的 ...

  6. webpack v3 结合 react-router v4 做 dynamic import — 按需加载(懒加载)

    为什么要做dynamic import? dynamic import不知道为什么有很多叫法,什么按需加载,懒加载,Code Splitting,代码分页等. 总之,就是在SPA,把JS代码分成N个页 ...

  7. lombok中的@Data注解与MyBatis的懒加载机制冲突解决

    使用@Data注解与mybatis的懒加载机制实现一对一关系查询时,发现怎么配置都无效,就是一下都查出来了,根本没有懒加载 1.application.yml配置文件配置如下: # mybatis 配 ...

  8. free mybatis 不生效_关于 Mybatis 设置懒加载无效的问题

    看了 mybatis 的教程,讲到关于mybatis 的懒加载的设置: 只需要在 mybatis 的配置文件中设置两个属性就可以了: 但是经过测试之后发现是无效的,经过一番折腾,发现是因为我在测试的时 ...

  9. bootstrap 数据加载中提示_解决Quartz定时器中查询懒加载数据no session的问题

    作者:下一秒升华 出自:CSDN 原文:blog.csdn.net/u013815546/article/details/53032445 相信大家在web开发过程中一定遇到过一种情况,Class班级 ...

最新文章

  1. property classmethod staticmethod的用法
  2. mysql退出当前数据库,再次 show databases
  3. 检测生成.xml文件的效果:以人脸xml为例
  4. C语言递归实现二叉树(二叉链表)的三种遍历和销毁操作(实验)
  5. 计算机c盘用户,windows 7 c盘的用户文件夹users如何转移
  6. laragon环境安装新的php版本后弹出php startup
  7. 每天进步一点点《ML - K-means》
  8. retrofit框架学习(一)----基本用法
  9. css之div内部靠右
  10. pymysql连接数据库
  11. 如何制做计算机病毒,电脑病毒制作-怎么制作电脑病毒请教高手,怎么做病毒? – 手机爱问...
  12. linux搭建ddos发包机脚本_分享一个linux下自动封IP防御DDOS的脚本-网络教程与技术 -亦是美网络...
  13. 【Android】spinner下拉框样式修改
  14. 网络推广方式有哪些?分享几种常见的推广方式,十分有效
  15. 第一轮通知 | 5月11-13日,中国肠道大会!
  16. alert uuid does not exits. Dropping to a shell!
  17. 蓝桥杯 STEMA 考试选择题模拟题
  18. 简单句、并列句、复合句、got his wish、 owe you
  19. PT柜、进线柜、出线柜、隔离柜
  20. HTML5期末大作业:淘宝网站设计——仿2018淘宝首页(1页) HTML+CSS+JavaScript 学生DW网页设计作业成品 web课程设计网页规划与设计 计算机毕设网页设计源码

热门文章

  1. dao层和service层和control_最受欢迎Java数据库访问框架(DAO层)
  2. mave工程中的一个类调用另一个聚合工程的一个类_软件工程系列-UML1
  3. Linux 文件系统相关的命令
  4. 刷新iframe页面
  5. 数据分析师要会mysql_数据分析人员需要掌握sql到什么程度?
  6. python获得对象对应的类名称
  7. pytorch修改tensor的维度(修改为任意维度,或单纯的增减维度)
  8. 聚类方法学习(三)亲和力传播算法AP
  9. python按照时间timestramp切分网络前向流与后向流
  10. js中自执行函数(function(){})()和(function(){}())区别