欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java?IPage分頁操作 附加自定義sql

 更新時(shí)間:2022年06月21日 10:27:41   作者:杰拉德·皮克·謝  
這篇文章主要介紹了Java?IPage分頁加自定義sql,主要包括引入依賴,impl常規(guī)操作,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下

引入依賴

   <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>3.1.2</version>
        </dependency>

User實(shí)體類

@ApiModel(description = "用戶實(shí)體")
public class User {

    /**
     * serialVersionUID
     */
    @ApiModelProperty(value = "主鍵")
    private Integer id;

    @ApiModelProperty(value = "用戶名")
    private String username;

    @ApiModelProperty(value = "真實(shí)昵稱")
    private String realname;

    @ApiModelProperty(value = "性別")
    private String sex;

    @ApiModelProperty(value = "工號(hào)")
    private String jobNum;

    @ApiModelProperty(value = "狀態(tài) 0 啟用 1 禁用")
    private Integer isDel;

    @ApiModelProperty(value = "部門")
    private Integer departmentId;

    private String departmentName;

    @ApiModelProperty(value = "密碼")
    private String password;// 用戶密碼

    @ApiModelProperty(value = "手機(jī)")
    private String mobile;// 手機(jī)

    private Integer createUser;

    private Integer editUser;

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date gmtCreate;

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date gmtUpdate;
    }

controller

   @PostMapping("/likeUser")
    @ApiOperation("模糊查詢—分頁")
    public ApiResponse<User> getLikeUser(@RequestBody Map<String, Object> queryMap) {
        try {
            return ApiResponse.ofSuccess(userService.getLikeUser(queryMap));
        } catch (Exception e) {
            log.error("模糊查詢—分頁失敗", e);
            return ApiResponse.ofError("模糊查詢—分頁失敗");
        }
    }

service

 IPage<User> getLikeUser(Map<String, Object> queryMap);

impl

impl常規(guī)操作

 @Override
    public IPage<User> getLikeUser(Map<String, Object> params) {
        long size = Long.parseLong(StringUtils.defaultIfBlank(String.valueOf(params.get("limit")), "10"));
        long current = Long.parseLong(StringUtils.defaultIfBlank(String.valueOf(params.get("page")), "1"));


        QueryWrapper<User> q = new QueryWrapper<>();

        Object username= params.get("username");

        Object realname= params.get("realname");

        Object sex= params.get("sex");

        Object jobNum= params.get("jobNum");

        Object mobile= params.get("mobile");
        // 排序
        Object sort = params.get("sort");
        if (null != username && username.toString().trim().length() > 0) {
            q.lambda().like(User::getUsername, username);
        }
        if (null != realname) {
            q.lambda().like(User::getRealname, realname);
        }
        if (null != jobNum) {
            q.lambda().eq(User::getJobNum, jobNum);
        }
        if (null != startTime && null != endTime) {
            // GE 就是 GREATER THAN OR EQUAL 大于等于
            // LE 就是 LESS THAN OR EQUAL 小于等于
            q.lambda().ge(User::getCreateTime, startTime);
            q.lambda().le(User::getCreateTime, endTime);
        }
        if (sort.equals("ASC")) {
            // 升
            q.lambda().orderByAsc(User::getCreateTime);
        } else if (sort.equals("DESC")) {
            q.lambda().orderByDesc(User::getCreateTime);
        }
          IPage<USer> page = this.page(
                new Page<>(current, size), q);
        return page;
    }

impl自定義參數(shù)重寫Sql

  • 思路:正常使用 Page<TcmcAlarm> page = new Page<>(current, size);分頁插件
  • -返回 IPage<User> iPage = baseMapper.selectUser(page,username); 傳參時(shí) 傳入自定義的參數(shù)和 page
  • sql 正常接入即可
@Override
public IPage<TcmcAlarm> selectUSer(Map<String, Object> params) {
    long size = Long.parseLong(StringUtils.defaultIfBlank(String.valueOf(params.get("limit")), "10"));
    long current = Long.parseLong(StringUtils.defaultIfBlank(String.valueOf(params.get("page")), "1"));
    String id= params.get("devId").toString();
    String username= params.get("username").toString();
    // 分頁的使用
    Page<User> page = new Page<>(current, size);
    // 自定義sql
    IPage<User> iPage = baseMapper.selectUser(page, username);
    return iPage;
}
// mapper
IPage<TcmcAlarm> selectUser(Page page, @Param("username") String username ;
// sql
<select id="selectUser" resultType="com.xxx.entity.User">
        select *
        from user
        where username LIKE CONCAT('%', #{username}, '%')
    </select>

直接在impl 中寫好 Sql 當(dāng)作參數(shù)傳入xml

// 復(fù)雜拼接  這種寫法最簡單,直接Joiner.on 拼接 “,” “#” “、”_" “-” 之類的
String UNION = "UNION ALL ";
 // TB_SQL sql 片段
String join = Joiner.on(UNION).join(TB_SQL);
Page<User> page = new Page<>(current, size);
        IPage<User> iPage = tcmcAlarmMapper.selectUser(page, join);
// mapper
IPage<User> selectUser(Page page, @Param("data") String data);
// xml
 <select id="selectUser" resultType="com.xxx.entity.User">
        ${data}
    </select>

到此這篇關(guān)于Java IPage分頁 加自定義sql的文章就介紹到這了,更多相關(guān)Java IPage分頁內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Java Enum的簡單使用

    Java Enum的簡單使用

    這篇文章主要為大家詳細(xì)介紹了Java Enum的簡單使用,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-09-09
  • Java 詳細(xì)講解分治算法如何實(shí)現(xiàn)歸并排序

    Java 詳細(xì)講解分治算法如何實(shí)現(xiàn)歸并排序

    分治算法的基本思想是將一個(gè)規(guī)模為N的問題分解為K個(gè)規(guī)模較小的子問題,這些子問題相互獨(dú)立且與原問題性質(zhì)相同。求出子問題的解,就可得到原問題的解,本篇文章我們就用分治算法來實(shí)現(xiàn)歸并排序
    2022-04-04
  • java編寫的簡單移動(dòng)方塊小游戲代碼

    java編寫的簡單移動(dòng)方塊小游戲代碼

    這篇文章主要介紹了java編寫的簡單移動(dòng)方塊小游戲代碼,涉及Java簡單圖形繪制與事件響應(yīng)的相關(guān)技巧,需要的朋友可以參考下
    2015-12-12
  • Java開發(fā)中POJO和JSON互轉(zhuǎn)時(shí)如何忽略隱藏字段的問題

    Java開發(fā)中POJO和JSON互轉(zhuǎn)時(shí)如何忽略隱藏字段的問題

    這篇文章主要介紹了Java開發(fā)中POJO和JSON互轉(zhuǎn)時(shí)如何忽略隱藏字段的問題,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-02-02
  • JVM垃圾回收算法的概念與分析

    JVM垃圾回收算法的概念與分析

    這篇文章主要給大家介紹了關(guān)于JVM垃圾回收算法的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用JVM具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-12-12
  • SpringBoot配置GlobalExceptionHandler全局異常處理器案例

    SpringBoot配置GlobalExceptionHandler全局異常處理器案例

    這篇文章主要介紹了SpringBoot配置GlobalExceptionHandler全局異常處理器案例,通過簡要的文章說明如何去進(jìn)行配置以及使用,需要的朋友可以參考下
    2021-06-06
  • 使用SpringMVC在redirect重定向的時(shí)候攜帶參數(shù)的問題

    使用SpringMVC在redirect重定向的時(shí)候攜帶參數(shù)的問題

    這篇文章主要介紹了使用SpringMVC在redirect重定向的時(shí)候攜帶參數(shù)的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-03-03
  • 在Action中以Struts2的方式輸出JSON數(shù)據(jù)的實(shí)例

    在Action中以Struts2的方式輸出JSON數(shù)據(jù)的實(shí)例

    下面小編就為大家?guī)硪黄贏ction中以Struts2的方式輸出JSON數(shù)據(jù)的實(shí)例。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2016-11-11
  • Java經(jīng)典算法匯總之冒泡排序

    Java經(jīng)典算法匯總之冒泡排序

    冒泡排序基本思想:在要排序的一組數(shù)中,對(duì)當(dāng)前還未排好序的范圍內(nèi)的全部數(shù),自上而下對(duì)相鄰的兩個(gè)數(shù)依次進(jìn)行比較和調(diào)整,讓較大的數(shù)往下沉,較小的往上冒。即:每當(dāng)兩相鄰的數(shù)比較后發(fā)現(xiàn)它們的排序與排序要求相反時(shí),就將它們互換。
    2016-04-04
  • JAVA利用遞歸刪除文件代碼實(shí)例

    JAVA利用遞歸刪除文件代碼實(shí)例

    這篇文章主要介紹了JAVA利用遞歸刪除文件代碼實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-10-10

最新評(píng)論