摘要:本次的JAVA从入门到精通主要向大家介绍了Mybatis一对多关联查询,希望对大家学习java有所帮助,让大家在JAVA从入门到精通的路上走的更远。
本次的JAVA从入门到精通主要向大家介绍了Mybatis一对多关联查询,希望对大家学习java有所帮助,让大家在JAVA从入门到精通的路上走的更远。
Mybatsi一对多关联查询:
在MySQL数据库新建两张数据库表t_emp和t_dept,并插入若干条数据
CREATE TABLE t_emp (
id int(10) NOT NULL AUTO_INCREMENT,
emp_name varchar(100) DEFAULT NULL,
dept_id int(10),
PRIMARY KEY (id)
) ENGINE=InnoDB AUTO_INCREMENT=0 DEFAULT CHARSET=utf8;
INSERT INTO t_emp(emp_name,dept_id) VALUES ('queen', 1);
INSERT INTO t_emp(emp_name,dept_id) VALUES ('king', 1);
INSERT INTO t_emp(emp_name,dept_id) VALUES ('tom', 2);
INSERT INTO t_emp(emp_name,dept_id) VALUES ('james', 3);
INSERT INTO t_emp(emp_name,dept_id) VALUES ('paul', 3);
=========================================================
CREATE TABLE t_dept (
id int(10) NOT NULL AUTO_INCREMENT,
dept_name varchar(20) DEFAULT NULL,
PRIMARY KEY (id)
) ENGINE=InnoDB AUTO_INCREMENT=0 DEFAULT CHARSET=utf8;
INSERT INTO t_dept(dept_name) VALUES ('开发部');
INSERT INTO t_dept(dept_name) VALUES ('市场部');
INSERT INTO t_dept(dept_name) VALUES ('行政部');
Emp.java实体类:
/**
* 定义一个Java类Emp
*
*/
public class Emp {
// ID,唯一性
private int id;
// 用户名
private String empName;
// 部门ID
private int deptId;
public Emp() {
}
public Emp(int id, String empName, int deptId) {
this.id = id;
this.empName = empName;
this.deptId = deptId;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getEmpName() {
return empName;
}
public void setEmpName(String empName) {
this.empName = empName;
}
public int getDeptId() {
return deptId;
}
public void setDeptId(int deptId) {
this.deptId = deptId;
}
@Override
public String toString() {
return "Emp [id=" + id + ", empName=" + empName + ", deptId="
+ deptId + "]";
}
}Dept实体类:
import java.util.List;
/**
* 定义一个Java类Dept
*
*/
public class Dept {
private int id;
private String deptName;
private ListempList;
public Dept() {
}
public Dept(int id, String deptName, ListempList) {
this.id = id;
this.deptName = deptName;
this.empList = empList;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getDeptName() {
return deptName;
}
public void setDeptName(String deptName) {
this.deptName = deptName;
}
public ListgetEmpList() {
return empList;
}
public void setEmpList(ListempList) {
this.empList = empList;
}
@Override
public String toString() {
return "Dept [id=" + id + ", deptName=" + deptName + "]";
}
}
定义DeptMapper接口
/**
* 定义一个DeptMapper接口
*
*/
public interface DeptMapper {
/**
* 根据ID查询Dept信息,返回一条记录Dept
* @param id
* @return
*/
public Dept getDeptById(int id);
}嵌套查询,DeptMapper.xml配置文件如下
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"//mybatis.org/dtd/mybatis-3-mapper.dtd">
SELECT m.id mid, m.dept_name deptName,n.id nid,
n.emp_name empName,n.dept_id deptId
FROM t_dept m
LEFT JOIN t_emp n ON m.id = n.dept_id
WHERE
m.id = #{id}
新增测试类MyBatisTest,添加测试方法testGetDeptByCollection
@Test
public void testGetDeptByCollection() throws IOException {
SqlSessionFactory sqlSessionFactory = getSqlSessionFactory();
SqlSession openSession = sqlSessionFactory.openSession();
try {
DeptMapper mapper = openSession.getMapper(DeptMapper.class);
Dept dept = mapper.getDeptById(1);
System.out.println(dept);
System.out.println(dept.getEmpList());
} finally {
openSession.close();
}
}希望这篇文章可以帮助到你,总之同学们,IT资讯尽在职坐标。
喜欢 | 0
不喜欢 | 0
您输入的评论内容中包含违禁敏感词
我知道了

请输入正确的手机号码
请输入正确的验证码
您今天的短信下发次数太多了,明天再试试吧!
我们会在第一时间安排职业规划师联系您!
您也可以联系我们的职业规划师咨询:
版权所有 职坐标-一站式AI+学习就业服务平台 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
沪公网安备 31011502005948号