摘要:本次的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资讯尽在职坐标。
您输入的评论内容中包含违禁敏感词
我知道了
请输入正确的手机号码
请输入正确的验证码
您今天的短信下发次数太多了,明天再试试吧!
我们会在第一时间安排职业规划师联系您!
您也可以联系我们的职业规划师咨询:
版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
沪公网安备 31011502005948号