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