MybatisPlus將自定義的sql列表查詢(xún)返回改為分頁(yè)查詢(xún)
問(wèn)題描述
在開(kāi)發(fā)過(guò)程中在 mapper.xml 文件中自定義了一個(gè) sql 查詢(xún)列表的 select 語(yǔ)句,但是由于前端需要的是分頁(yè)數(shù)據(jù),需要在后端將列表查詢(xún)改成分頁(yè)查詢(xún)
修改前
1. 查詢(xún)數(shù)據(jù)類(lèi)型
@Data
public class OppRelMoveWrapper implements BaseData {
/**
* ID
*/
private Long id;
/**
* 商機(jī)ID
*/
private Long oppId;
/**
* RELATIONSHIP
*/
private String relationship;
/**
* 關(guān)系評(píng)價(jià)附件
*/
private String attachmentRel;
/**
* CHIEF_RECORD
*/
private String chiefRecord;
/**
* 首席代表動(dòng)態(tài)記錄附件
*/
private String attachmentChief;
/**
* ORDINARY_RECORD
*/
private String ordinaryRecord;
/**
* 普通動(dòng)態(tài)記錄附件
*/
private String attachmentOrdinary;
/**
* 錄入人
*/
private Long createStaff;
/**
* 錄入時(shí)間
*/
private Date createDate;
/**
* 更新時(shí)間
*/
private Date updateDate;
}
2. mapper定義
@Mapper
public interface OppRelationshipInfoMoveMapper extends BaseMapper<OppRelationshipInfoMove> {
List<OppRelMoveWrapper> queryMoveClientList(@Param("query") OppRelMoveQuery query);
}
3. xml文件定義
該語(yǔ)句查詢(xún)的是一個(gè)返回?cái)?shù)據(jù)類(lèi)型為OppRelationshipInfoMoveMap的列表
<resultMap type="com.wrapper.OppRelMoveWrapper"
id="OppRelationshipInfoMoveMap">
<result property="id" column="ID" jdbcType="INTEGER"/>
<result property="oppId" column="OPP_ID" jdbcType="INTEGER"/>
<result property="relationship" column="RELATIONSHIP" jdbcType="VARCHAR"/>
<result property="attachmentRel" column="attachment_rel" jdbcType="VARCHAR"/>
<result property="chiefRecord" column="CHIEF_RECORD" jdbcType="VARCHAR"/>
<result property="attachmentChief" column="attachment_chief" jdbcType="VARCHAR"/>
<result property="ordinaryRecord" column="ORDINARY_RECORD" jdbcType="VARCHAR"/>
<result property="attachmentOrdinary" column="attachment_ordinary" jdbcType="VARCHAR"/>
<result property="createStaff" column="CREATE_STAFF" jdbcType="INTEGER"/>
<result property="createDate" column="CREATE_DATE" jdbcType="TIMESTAMP"/>
<result property="updateDate" column="UPDATE_DATE" jdbcType="TIMESTAMP"/>
</resultMap>
<select id="queryMoveClientList" resultMap="OppRelationshipInfoMoveMap">
SELECT
ID,
OPP_ID,
RELATIONSHIP,
attachment_rel,
CHIEF_RECORD,
attachment_chief,
ORDINARY_RECORD,
attachment_ordinary,
CREATE_STAFF,
CREATE_DATE,
UPDATE_DATE
FROM opp_relationship_info_move
WHERE 1=1
<if test="query.createDate != null and query.createDate != ''">
AND DATE_FORMAT(CREATE_DATE, '%Y-%m-%d') = #{query.createDate}
</if>
<if test="query.updateDate != null and query.updateDate != ''">
AND DATE_FORMAT(UPDATE_DATE, '%Y-%m-%d') = #{query.updateDate}
</if>
<if test="query.oppId != null and query.oppId != ''">
AND OPP_ID = #{query.oppId}
</if>
ORDER BY CREATE_DATE DESC
</select>
4. 函數(shù)使用
List<OppRelMoveWrapper> moveWrapperList = oppRelationshipInfoMoveMapper.queryMoveClientList(query);
修改后
修改成分頁(yè)查詢(xún)比較簡(jiǎn)單,直接將 mapper 的查詢(xún)方法修改即可
1. 修改mapper
將函數(shù)返回的數(shù)據(jù)改成 Page類(lèi)型
@Mapper
public interface OppRelationshipInfoMoveMapper extends BaseMapper<OppRelationshipInfoMove> {
Page<OppRelMoveWrapper> queryMoveClientList(Page<Object> page, @Param("query") OppRelMoveQuery query);
}
2. 函數(shù)使用
注意: 構(gòu)造Page時(shí)里面的 pageNum 和 pageSize 一定要存在?。?! 否則獲得的 Page 中的 records 為空?。?!
Page<OppRelMoveWrapper> moveWrapperPage = oppRelationshipInfoMoveMapper.queryMoveClientList(
new Page(query.getPage(), query.getPageSize(), true), query);
結(jié)語(yǔ)
很香的一個(gè)方法,使我的列表查詢(xún)變成分頁(yè)查詢(xún)。
到此這篇關(guān)于MybatisPlus將自定義的sql列表查詢(xún)返回改為分頁(yè)查詢(xún)的文章就介紹到這了,更多相關(guān)MybatisPlus自定義sql列表查詢(xún)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- MyBatis-Plus實(shí)現(xiàn)對(duì)查詢(xún)結(jié)果進(jìn)行分頁(yè)的基本步驟
- MybatisPlus多表查詢(xún)及分頁(yè)查詢(xún)完整代碼
- MyBatis分頁(yè)查詢(xún)返回list的時(shí)候出現(xiàn)null的問(wèn)題
- mybatis-plus分頁(yè)查詢(xún)的實(shí)現(xiàn)實(shí)例
- MyBatis分頁(yè)查詢(xún)與特殊字符處理方式
- Mybatis實(shí)現(xiàn)分頁(yè)查詢(xún)的詳細(xì)流程
- mybatis-plus分頁(yè)查詢(xún)?nèi)N方法小結(jié)
- Java中Mybatis分頁(yè)查詢(xún)的四種傳參方式
- Mybatis分頁(yè)查詢(xún)主從表的實(shí)現(xiàn)示例
相關(guān)文章
mybatis連接mysql的實(shí)現(xiàn)過(guò)程
通過(guò)配置Maven的pom文件,可以簡(jiǎn)化MyBatis連接數(shù)據(jù)庫(kù)的過(guò)程,免去手動(dòng)下載和導(dǎo)入各種依賴(lài)包的麻煩,本文介紹了如何利用Maven導(dǎo)入MyBatis及其他相關(guān)依賴(lài),如Junit、MySQL連接驅(qū)動(dòng)、Druid連接池和Dbutil等,以簡(jiǎn)化數(shù)據(jù)庫(kù)操作和測(cè)試2024-10-10
SpringBoot修改yml配置和加載順序規(guī)則的示例詳解
這篇文章主要為大家詳細(xì)介紹了SpringBoot如何修改yml配置和加載順序規(guī)則,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2025-08-08
使用Java將實(shí)體類(lèi)轉(zhuǎn)換為JSON并輸出到控制臺(tái)的完整過(guò)程
在軟件開(kāi)發(fā)的過(guò)程中,Java是一種廣泛使用的編程語(yǔ)言,而在眾多應(yīng)用中,數(shù)據(jù)的傳輸和存儲(chǔ)經(jīng)常需要使用JSON格式,用Java將實(shí)體類(lèi)轉(zhuǎn)換為JSON格式并輸出其實(shí)不難,只需掌握幾個(gè)步驟就可以做到!接下來(lái),我們來(lái)看看這一過(guò)程究竟是如何實(shí)現(xiàn)的,感興趣的小伙伴跟著小編一起來(lái)看看吧2025-05-05
SpringBoot文件上傳控制及Java 獲取和判斷文件頭信息
這篇文章主要介紹了SpringBoot文件上傳控制的相關(guān)資料,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2017-12-12
Java開(kāi)發(fā)者不能忽略的11種return寫(xiě)法
今天,我們不講設(shè)計(jì)模式、不談八股文,結(jié)合實(shí)際項(xiàng)目踩坑經(jīng)歷,帶你從?11?個(gè)高頻場(chǎng)景,拆解?return?的優(yōu)雅用法與隱藏陷阱,希望對(duì)大家有所幫助2025-08-08
java arrayList遍歷的四種方法及Java中ArrayList類(lèi)的用法
arraylist是動(dòng)態(tài)數(shù)組,它具有三個(gè)好處分別是:動(dòng)態(tài)的增加和減少元素 、實(shí)現(xiàn)了ICollection和IList接口、靈活的設(shè)置數(shù)組的大小,本文給大家介紹java arraylist遍歷及Java arraylist 用法,感興趣的朋友一起學(xué)習(xí)吧2015-11-11

