本篇文章和大家了解一下Mybatis-Plus多表關聯查詢的操作例子。有一定的參考價值,有需要的朋友可以參考一下,希望對大家有所幫助。
1、 controller控制層
2、dao層, 項目的目錄結構: 有以下四個包:

1、 controller控制層
2、dao層,接口
3、pojo,shiulilei
4、service服務層
部門表:dept

員工表:emp

假設要查詢每個員工所屬的部門(或位置等信息),就需要將兩張表連接起來,使用SQL語句很簡單(select * from emp,dept where emp.deptno=dept.deptno),但是在Java程序中怎么寫就比較復雜了。
1)dept
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("dept")
public class Dept implements Serializable {
private static final long serialVersionUID = 1L;
@TableId
private Integer deptno;
private String dname;
private String loc;
}2)emp
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("emp")
public class Emp implements Serializable {
private static final long serialVersionUID = 1L;
@TableId("empno")
private Integer empno;
private String ename;
private String job;
private Integer mgr;
private LocalDateTime hiredate;
private BigDecimal sal;
private BigDecimal comm;
private Integer deptno;
private Dept dept;//多表關聯需要查詢的數據
}在Emp類中多了一個Dept對象,這個對象包含了每個員工對應部門的信息。
<mapper namespace="com.nb.spring_boot.api.dao.IEmpDao"> <resultMap id="empMapper" type="com.nb.spring_boot.api.pojo.Emp"> <association property="dept" column="deptno" select="com.nb.spring_boot.api.dao.IDeptDao.selectById"/> </resultMap> <select id="queryEmps" resultMap="empMapper"> select * from emp </select> </mapper>
resultMap里的id屬性(empMapper)里面可以隨便寫一個變量名,可以不叫empMapper,select里的selectById在IDeptDao接口中要有該方法
Dept selectById(Integer deptno);
<select id="selectById" resultType="com.nb.spring_boot.api.pojo.Dept">
select * from dept where deptno=#{deptno}
</select>public interface IDeptDao extends BaseMapper<Dept> {
Dept selectById(Integer deptno);
}public interface IEmpDao extends BaseMapper<Emp> {
IPage<Emp> queryEmps(IPage<Emp> page,@Param(Constants.WRAPPER) Wrapper<Emp> wrapper);
}public interface IEmpService extends IService<Emp> {
IPage<Emp> queryEmps(IPage<Emp> result, QueryWrapper<Emp> wrapper);
}public class EmpServiceImpl extends ServiceImpl<IEmpDao, Emp> implements IEmpService {
@Autowired
IEmpDao empDao;//這里報紅沒事
@Override
public IPage<Emp> queryEmps(IPage<Emp> result, QueryWrapper<Emp> wrapper) {
result = empDao.queryEmps(result, wrapper);
return result;
}
}示例:
@RequestMapping("qemps")
IPage<Emp> queryEmps(@RequestParam(defaultValue = "1") int page,
@RequestParam(defaultValue = "5") int limit){
IPage<Emp> result = new Page<>(page, limit);
QueryWrapper<Emp> wrapper = new QueryWrapper<>();
wrapper.gt("sal", 1000);//查詢條件,工資大于1000,其他的可以研究一下,比如eq,le,like
return empService.queryEmps(result, wrapper);
}以上就是多表關聯查詢了~~~
以上就是Mybatis-Plus多表關聯查詢的操作例子的簡略介紹,當然詳細使用上面的不同還得要大家自己使用過才領會。如果想了解更多,歡迎關注億速云行業資訊頻道哦!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。