您好,登錄后才能下訂單哦!
本篇文章和大家了解一下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進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。