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

bb38d9905d1af70717efa27299cef832.png

涉及到数据库的级联查询,那肯定就要提到一对一,一对多,多对多这样的表关系,以及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');

14a9cd0e5b549046c12e4f77d0da5559.png

部门表,员工表是很明显的一对多,或者说多对一的表关系,这样的数据库表关系,我们在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 +

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值