mybatis-plus 高級搜索分頁功能的實現 sql語句 QueryWrapper 條件判斷


mybatis-plus分頁功能的實現
創建一個mybatisplus的項目。

配置類mybatisConfig.java 開啟。

寫service層的方法。

 

mybatisConfig.java
package com.ppl.mybatispage.config;

import com.baomidou.mybatisplus.annotation.DbType;
import com.baomidou.mybatisplus.autoconfigure.ConfigurationCustomizer;
import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

/**
 * @author ppliang
 * @date 2020/12/24 19:57
 */
@Configuration
public class MybatisConfig {

    /**
     * 新的分頁插件,一緩和二緩遵循mybatis的規則,需要設置 MybatisConfiguration#useDeprecatedExecutor = false 避免緩存出現問題
     */
    @Bean
    public MybatisPlusInterceptor mybatisPlusInterceptor() {
        MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
        //注釋下面的可能出現獲取不到總數的效果
        interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL));
        return interceptor;
    }

    @Bean
    public ConfigurationCustomizer configurationCustomizer() {
        return configuration -> configuration.setUseDeprecatedExecutor(false);
    }

}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
EmployeeServiceImpl.java
package com.ppl.mybatispage.service.impl;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ppl.mybatispage.dao.EmployeeMapper;
import com.ppl.mybatispage.entity.Employee;
import com.ppl.mybatispage.service.EmployeeService;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;

/**
 * @author ppliang
 * @date 2020/12/24 19:51
 */
@Service
public class EmployeeServiceImpl extends ServiceImpl<EmployeeMapper,Employee> implements EmployeeService {

    @Resource
    private EmployeeMapper employeeMapper;

    /**
     * 分頁自帶包裝類
     *   QueryWrapper 進行條件判斷
     * @param page
     * @param employee
     * @return
     */
    @Override
    public IPage<Employee> pageEmployee(IPage<Employee> page, Employee employee) {
        // https://baomidou.com/guide/wrapper.html
        // Page<Employee> page=new Page<>(pageNum,pageSize); 設置頁數
        QueryWrapper<Employee> employeeQueryWrapper = new QueryWrapper<>();
        //設置查詢性別
        employeeQueryWrapper.eq("gender", employee.getGender());
        IPage<Employee> employeeIPage = employeeMapper.selectPage(page, employeeQueryWrapper);
        return employeeIPage;
    }

    /**
     * 分頁自帶包裝類
     *   QueryWrapper 自定義SQL語句
     * @param page
     * @param employee
     * @return
     */
    @Override
    public IPage<Employee> pageEmployee2(IPage<Employee> page,Employee employee) {
        IPage<Employee> employeeIPage = employeeMapper.pageEmployee2(page, employee);
        return employeeIPage;
    }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
EmployeeMapper.java
/**
 * @author ppliang
 * @date 2020/12/24 19:50
 */
public interface EmployeeMapper extends BaseMapper<Employee> {

    IPage<Employee> pageEmployee2(IPage<Employee> page, Employee employee);
}
1
2
3
4
5
6
7
8
EmployeeMapper.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ppl.mybatispage.dao.EmployeeMapper">

     <select id="pageEmployee2" resultType="com.ppl.mybatispage.entity.Employee">
        SELECT *
        FROM t_employee
        <where>
            <if test="param2.gender !=null and param2.gender != '' ">
               and  gender = #{param2.gender}
            </if>
        </where>
    </select>
</mapper>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
一開始沒有總數顯示出來,就是在配置類中沒有指明數據庫類型!!!!

interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL));
————————————————
版權聲明:本文為CSDN博主「黃二馬」的原創文章,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/xiaoliang98/article/details/111657612


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM