mybatis中的多对一的查询
生活随笔
收集整理的這篇文章主要介紹了
mybatis中的多对一的查询
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
多對(duì)一也分為單條sql語句和多條sql語句
下面就以員工和就職部門為例:
員工實(shí)體類
private Integer empno;private String empname;
private Integer deptno;
//植入部門實(shí)體
private Dept dept;
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;
}
public Dept getDept() {
return dept;
}
public void setDept(Dept dept) {
this.dept = dept;
}
部門實(shí)體類 private Integer deptno;
private String deptname;
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;
}
單條sql語句
接口
/**
* 根據(jù)員工編號(hào) 獲取員工姓名和所屬部門
* 多對(duì)一 一條sal語句
* @param empno
* @return
*/
public Emp getEmpByEmpNo(int empno);
xml文件(小配置)
<!--根據(jù)員工編號(hào) 獲取員工姓名和所屬部門
多對(duì)一 一條sql語句
-->
<resultMap id="empMapper" type="Emp">
<id column="empno" property="empno"></id>
<result column="empname" property="empname"></result>
<association property="dept" javaType="Dept">
<id column="deptno" property="deptno"></id>
<result column="deptname" property="deptname"></result>
</association>
</resultMap>
<select id="getEmpByEmpNo" resultMap="empMapper">
SELECT dept.deptno,dept.deptname,empname,empno
FROM Dept,Emp
WHERE dept.deptno=emp.deptno AND empno=#{empno}
</select>
測(cè)試類
/**
* 根據(jù)員工編號(hào) 獲取員工姓名和所屬部門
* 多對(duì)一 一條sql語句
*/
@Test
public void getEmpByEmpNo(){
SqlSession session = MyBatisUtil.getSession();
IEmpDAO mapper = session.getMapper(IEmpDAO.class);
Emp emp = mapper.getEmpByEmpNo(1);
System.out.println(emp.getEmpname());
System.out.println(emp.getDept().getDeptname());
session.commit();
session.close();
}
多條sql語句
接口 /**
* 根據(jù)員工編號(hào) 獲取員工姓名和所屬部門
* 多對(duì)一 多條sal語句
* @param empno
* @return
*/
public Emp getEmpByEmpNoManySql(int empno);
xml文件(小配置) <!--根據(jù)員工編號(hào) 獲取員工姓名和所屬部門
多對(duì)一 多條sql語句
-->
<resultMap id="empMapperMnaySql" type="Emp">
<id column="empno" property="empno"></id>
<result column="empname" property="empname"></result>
<association property="dept" javaType="Dept" column="empno" select="getEmpByEmpno"></association>
</resultMap>
<select id="getEmpByEmpno" resultType="Dept">
select *from dept where deptno=#{deptno}
</select>
<select id="getEmpByEmpNoManySql" resultMap="empMapperMnaySql">
SELECT empname,empno FROM Emp WHERE empno=#{empno}
</select>
測(cè)試類
/**
* 根據(jù)員工編號(hào) 獲取員工姓名和所屬部門
* 多對(duì)一 多條sql語句
*/
@Test
public void getEmpByEmpNoManySql(){
SqlSession session = MyBatisUtil.getSession();
IEmpDAO mapper = session.getMapper(IEmpDAO.class);
Emp emp = mapper.getEmpByEmpNoManySql(2);
System.out.println(emp.getEmpname());
System.out.println(emp.getDept().getDeptname());
session.commit();
session.close();
}
?
轉(zhuǎn)載于:https://www.cnblogs.com/sujulin/p/7589120.html
總結(jié)
以上是生活随笔為你收集整理的mybatis中的多对一的查询的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 梦到捡珍珠是什么意思
- 下一篇: tcp和udp的区别和三次 四次挥握手