java中一对多查询,mybatis中的一对多的查询

一对多分为单条sq语句l和多条sql语句

下面就以员工和就职部门为例:

部门实体类

private Integer deptno;

private String deptname;

//植入员工实体集合

private List emps=new ArrayList();

public String getDeptname() {

return deptname;

}

public void setDeptname(String deptname) {

this.deptname = deptname;

}

public Integer getDeptno() {

return deptno;

}

public void setDeptno(Integer deptno) {

this.deptno = deptno;

}

public List getEmps() {return emps;}

public void setEmps(List emps) {

this.emps = emps;

}

员工实体类

private Integer empno;

private String empname;

private Integer deptno;

public Integer getEmpno() {return empno;}

public void setEmpno(Integer empno) {

this.empno = empno;

}

public String getEmpname() {

return empname;

}

public void setEmpname(String empname) {

this.empname = empname;

}

public Integer getDeptno() {return deptno;}

public void setDeptno(Integer deptno) {

this.deptno = deptno;

}

单条sql语句

接口

/**

* 根据部门对象编号,查询部门对象,对象里面包含的员工集合

*一对多,一条sql语句

* @param deptno

* @return

*/

public Dept findEmpByDept(int deptno);

xml文件(小配置)

SELECT dept.deptno,dept.deptname,empname,empno

FROM Dept,Emp

WHERE dept.deptno=emp.deptno AND emp.deptno=#{deptno}

测试类

/**

* 根据部门对象编号,查询部门对象,对象里面包含的员工集合

* 一对多 一条sql语句

*/

@Test

public void findEmpByDept(){

SqlSession session = MyBatisUtil.getSession();

IDeptDAO mapper = session.getMapper(IDeptDAO.class);

Dept dept = mapper.findEmpByDept(1);

System.out.println(dept.getDeptname());

for(Emp item:dept.getEmps()){

System.out.println(item.getEmpname());

}

session.commit();

session.close();

}

多条sql语句

接口

/**

* 根据部门对象编号,查询部门对象,对象里面包含的员工集合

*一对多,多条sql语句

* @param deptno

* @return

*/

public Dept findEmpByDeptManySql(int deptno);

xml文件(小配置)

SELECT *from Emp where deptno=#{deptno}

SELECT * FROM Dept WHERE deptno=#{deptno}

测试类

/**

* 根据部门对象编号,查询部门对象,对象里面包含的员工集合

* 一对多 多条sql语句

*/

@Test

public void findEmpByDeptManySql(){

SqlSession session = MyBatisUtil.getSession();

IDeptDAO mapper = session.getMapper(IDeptDAO.class);

Dept dept = mapper.findEmpByDeptManySql(3);

System.out.println(dept.getDeptname());

for(Emp item:dept.getEmps()){

System.out.println(item.getEmpname());

}

session.commit();

session.close();

}

b739ec46bb5c46d9c0aa4ce35ba1ea56.png

关于找一找教程网

本站文章仅代表作者观点,不代表本站立场,所有文章非营利性免费分享。

本站提供了软件编程、网站开发技术、服务器运维、人工智能等等IT技术文章,希望广大程序员努力学习,让我们用科技改变世界。

[mybatis中的一对多的查询]http://www.zyiz.net/tech/detail-131320.html

你可能感兴趣的:(java中一对多查询)