emp.java
1 package cn.tulingxueyuan.pojo;
2
3 import java.time.LocalDate;
4
5
9 public class Emp {
10 private Integer id;
11 private String username;
12 private LocalDate createDate;
13 private deptId deptId;
14
15
16 public Integer getId() {
17 return id;
18 }
19
20 public void setId(Integer id) {
21 this.id = id;
22 }
23
24 public String getUsername() {
25 return username;
26 }
27
28 public void setUsername(String username) {
29 this.username = username;
30 }
31
32 public LocalDate getCreateDate() {
33 return createDate;
34 }
35
36 public void setCreateDate(LocalDate createDate) {
37 this.createDate = createDate;
38 }
39
40 public Integer getDeptId() {
41 return dept;
42 }
43
44 public void setDeptId(Integer deptId) {
45 this.dept = dept;
46 }
47
48 @Override
49 public String toString() {
50 return "Emp{" +
51 "id=" + id +
52 ", username='" + username + ''' +
53 ", createDate=" + createDate +
54 ", deptId=" + deptId+
55 '}';
56 }
57
58 }
EmpMapper.xml
1 23 8 94 5 6 7 10 select t1.id as e_id,t1.user_name,t2.id as d_id,t2.dept_name from emp t 1 11 INNER JOIN dept t2 on t1.dept_id=t2.id 12 where t1.id=#{id} 13 14 15 16 17 18 1920 25 2621 22 23 24
QueryEmpDTO
1 package cn.tulingxueyuan.pojo;
2
3
7 public class QueryEmpDTO {
8
9 private String deptName;
10 private Integer deptId;
11 private Integer id;
12 private String username;
13
14 public String getDeptName() {
15 return deptName;
16 }
17
18 public void setDeptName(String deptName) {
19 this.deptName = deptName;
20 }
21
22 public Integer getDeptId() {
23 return deptId;
24 }
25
26 public void setDeptId(Integer deptId) {
27 this.deptId = deptId;
28 }
29
30 public Integer getId() {
31 return id;
32 }
33
34 public void setId(Integer id) {
35 this.id = id;
36 }
37
38 public String getUsername() {
39 return username;
40 }
41
42 public void setUsername(String username) {
43 this.username = username;
44 }
45
46 @Override
47 public String toString() {
48 return "QueryEmpDTO{" +
49 "deptName='" + deptName + ''' +
50 ", deptId=" + deptId +
51 ", id=" + id +
52 ", username='" + username + ''' +
53 '}';
54 }
55 }
Test
1
4 @Test
5 public void test01() {
6 try(SqlSession sqlSession = sqlSessionFactory.openSession()){
7 // Mybatis在getMapper就会给我们创建jdk动态代理
8 EmpMapper mapper = sqlSession.getMapper(EmpMapper.class);
9 QueryEmpDTO dto = mapper.QueryEmp(4);
10 System.out.println(dto);
11 }
12 }
2、嵌套结果
2.1多对一
EmpMapper.xml
1 2 32.2一对多4 15 165 6 10 11 1412 13
1 23 16 174 5 10 11 1512 13 14
Emp.java
1 package cn.tulingxueyuan.pojo;
2
3 import java.time.LocalDate;
4
5
9 public class Emp {
10 private Integer id;
11 private String username;
12 private LocalDate createDate;
13 private Dept dept;
14
15
16 public Integer getId() {
17 return id;
18 }
19
20 public void setId(Integer id) {
21 this.id = id;
22 }
23
24 public String getUsername() {
25 return username;
26 }
27
28 public void setUsername(String username) {
29 this.username = username;
30 }
31
32 public LocalDate getCreateDate() {
33 return createDate;
34 }
35
36 public void setCreateDate(LocalDate createDate) {
37 this.createDate = createDate;
38 }
39
40 public Dept getDept() {
41 return dept;
42 }
43
44 public void setDept(Dept dept) {
45 this.dept = dept;
46 }
47
48 @Override
49 public String toString() {
50 return "Emp{" +
51 "id=" + id +
52 ", username='" + username + ''' +
53 ", createDate=" + createDate +
54 ", dept=" + dept +
55 '}';
56 }
57
58 }
Dept.java:
1 package cn.tulingxueyuan.pojo;
2
3 import java.util.List;
4
5
9 public class Dept {
10 private Integer id;
11 private String deptName;
12 private List emps;
13
14 public Integer getId() {
15 return id;
16 }
17
18 public void setId(Integer id) {
19 this.id = id;
20 }
21
22 public String getDeptName() {
23 return deptName;
24 }
25
26 public void setDeptName(String deptName) {
27 this.deptName = deptName;
28 }
29
30 public List getEmps() {
31 return emps;
32 }
33
34 public void setEmps(List emps) {
35 this.emps = emps;
36 }
37
38
39 @Override
40 public String toString() {
41 return "Dept{" +
42 "id=" + id +
43 ", deptName='" + deptName + ''' +
44 ", emps=" + emps +
45 '}';
46 }
47 }
EmpMapper.java:
1 package cn.tulingxueyuan.mapper;
2
3
4 import cn.tulingxueyuan.pojo.Emp;
5 import cn.tulingxueyuan.pojo.QueryEmpDTO;
6
7 import java.util.Map;
8
9
13 public interface EmpMapper {
14
15
16 QueryEmpDTO QueryEmp(Integer id);
17
18
19 Emp QueryEmp2(Integer id);
20
21
22
23 Emp QueryEmp3(Integer id);
24 }
DeptMapper.java:
1 package cn.tulingxueyuan.mapper;
2
3
4 import cn.tulingxueyuan.pojo.Dept;5
6
10 public interface DeptMapper {
11 //嵌套查询: 一对多 使用部门id查询员工
12 Dept SelectDeptAndEmps(Integer id);
13
14 // 嵌套查询(异步查询): 一对多 查询部门及所有员工
15 Dept SelectDeptAndEmps2(Integer id);
16 }
好了今天就分享到这里了,文章后续及更多java学习资料,关注我,免费领取



