一、mybatisplus聯表查詢查詢怎麼用
Mybatis-plus是一款優秀的ORM框架,支持快速、便捷地進行資料庫操作。聯表查詢可以使用Mybatis-plus提供的Wrapper、QueryWrapper等類來實現,常見的用法如下:
public List<Map<String, Object>> customSelectList(@Param("ew") Wrapper ew, Page page);
上述方法是自定義的Mybatis-plus介面,其中Wrapper ew表示查詢條件,Page page表示分頁信息。具體使用時,需要自定義一個Mapper介面,並在xml文件中配置SQL語句即可。
二、mybatisplus查詢
Mybatis-plus提供了很多查詢方法,例如按主鍵查詢、按條件查詢、分頁查詢等,主要使用以下類:
- BaseMapper
- Wrapper
- QueryWrapper
- LambdaQueryWrapper
其中,BaseMapper類是Mybatis-plus提供的基礎Mapper介面,我們需要在使用時自定義一個介面繼承它。Wrapper類是一個抽象類,主要用來定義查詢條件。QueryWrapper和LambdaQueryWrapper都是Wrapper的實現類,其中QueryWrapper可以使用類似SQL的語法來構造條件,而LambdaQueryWrapper支持使用Lambda表達式來構造條件。
以下是一個使用QueryWrapper構造查詢條件的例子:
//構造查詢條件
QueryWrapper<User> wrapper = new QueryWrapper<>();
wrapper.eq("name", "John");
wrapper.like("city", "Beijing");
//執行查詢操作
List<User> userList = userMapper.selectList(wrapper);
三、mybatis聯表查詢並分頁
為了實現聯表查詢並分頁操作,可以通過自定義一個VO類來包裝多個實體類,並在xml文件中使用SQL語句進行聯表查詢。
以下是一個實現聯表查詢的示例:
//定義VO類
@Data
public class UserVo {
private String name;
private String city;
private String departmentName;
}
//使用SQL語句進行聯表查詢
<select id="customSelectList" resultType="java.util.Map">
</select>
需要注意的是,在Mapper介面中需要定義一個customSelectList方法,並且使用@Param註解指定參數名為ew、page。
四、mybatisplus聯表分頁查詢
Mybatis-plus提供了方便的分頁查詢功能,通過在Mapper介面中繼承BaseMapper類,並使用Page類來指定分頁信息,即可實現分頁查詢。
以下是一個使用Mybatis-plus進行聯表分頁查詢的示例:
//構造查詢條件
QueryWrapper<User> wrapper = new QueryWrapper<>();
wrapper.eq("name", "John");
wrapper.like("city", "Beijing");
//進行分頁查詢
Page<User> page = new Page<>(1,10);
page = userMapper.selectPage(page, wrapper);
//獲取分頁結果
List<User> userList = page.getRecords();
五、mybatisplus查詢列表
Mybatis-plus提供了selectList方法,用來查詢一個列表。需要注意的是,查詢結果並不會自動進行分頁,如果需要進行分頁,則需要自己手動實現。
以下是一個使用Mybatis-plus進行查詢列表的示例:
//構造查詢條件
QueryWrapper<User> wrapper = new QueryWrapper<>();
wrapper.eq("name", "John");
wrapper.like("city", "Beijing");
//執行查詢操作
List<User> userList = userMapper.selectList(wrapper);
六、mybatisplus關聯查詢
Mybatis-plus支持進行關聯查詢,例如查詢一個用戶所屬的部門信息。具體使用方法與普通查詢基本相同,只需要定義一個VO類來包裝多個實體類,然後在xml文件中使用SQL語句進行關聯查詢即可。
以下是一個使用Mybatis-plus進行關聯查詢的示例:
//定義VO類
@Data
public class UserVo {
private String name;
private String city;
private Department department;
}
//使用SQL語句進行關聯查詢
<select id="customSelectList" resultMap="userMap">
</select>
需要注意的是,這裡的resultMap中需要使用association標籤,來指定關聯查詢的實體類。
七、mybatisplus多表關聯
Mybatis-plus支持進行多表聯查,例如查詢一個用戶、部門和角色的信息。具體使用方法與普通關聯查詢基本相同,只需要定義一個VO類來包裝多個實體類,然後在xml文件中使用SQL語句進行多表聯查即可。
以下是一個使用Mybatis-plus進行多表聯查的示例:
//定義VO類
@Data
public class UserVo {
private String name;
private String city;
private Department department;
private List<Role> roles;
}
//使用SQL語句進行多表聯查
<select id="customSelectList" resultMap="userMap">
</select>
需要注意的是,這裡的resultMap中需要使用collection標籤,來指定多表聯查的實體類。
八、mybatisplus多表聯查結果分頁選取
Mybatis-plus支持在多表聯查後,再對結果進行分頁選取。具體使用方法與Mybatis-plus的普通分頁查詢基本相同,只需要在使用selectList方法時,在第二個參數中指定分頁信息即可。
以下是一個實現多表聯查結果分頁選取的示例:
//構造查詢條件
QueryWrapper<User> wrapper = new QueryWrapper<>();
wrapper.eq("name", "John");
wrapper.like("city", "Beijing");
//執行查詢操作,並進行分頁選取
Page<UserVo> page = new Page<>(1,10);
page = userMapper.customSelectList(wrapper, page);
List<Map<String, Object>> resultMapList = page.getRecords();
以上就是Mybatis-plus聯表查詢的詳細闡述,其中涉及到了Mybatis-plus的各種查詢方法,包括:按主鍵查詢、按條件查詢、分頁查詢、關聯查詢、多表聯查、結果分頁選取等。開發人員可以根據實際需要,選擇合適的方法進行使用。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/192493.html