一、问题现象
使用 MyBatis-Plus 进行分页查询时,传入了 pageNum 和 pageSize,但是查询结果没有按照预期的效果返回。
二、问题原因
没有对 Mybatis-Puls 进行初始化,需要添加相应的配置类。
三、解决方案
在项目工程中创建 config 目录,在其中新建配置类 MyBatisPlusConfig.java。
import com.baomidou.mybatisplus.annotation.DbType;import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;import com.baomidou.mybatisplus.extension.plugins.inner.OptimisticLockerInnerInterceptor;import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;@Configurationpublic class MyBatisPlusConfig { @Bean public MybatisPlusInterceptor mybatisPlusInterceptor() { MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor(); // 向MyBatis-Plus的过滤器链中添加分页拦截器,需要设置数据库类型(主要用于分页方言) interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.POSTGRE_SQL));// interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL)); // 添加乐观锁拦截器 interceptor.addInnerInterceptor(new OptimisticLockerInnerInterceptor()); return interceptor; }}
注意:
如果使用的是 PostgreSQL,数据库类型为 DbType.POSTGRE_SQL;
如果使用的是 MySQL ,数据库类型为 DbType.MYSQL。
PS:
DbType.java 代码如下:
package com.baomidou.mybatisplus.annotation;public enum DbType { MYSQL("mysql", "MySql数据库"), MARIADB("mariadb", "MariaDB数据库"), ORACLE("oracle", "Oracle11g及以下数据库(高版本推荐使用ORACLE_NEW)"), ORACLE_12C("oracle12c", "Oracle12c+数据库"), DB2("db2", "DB2数据库"), H2("h2", "H2数据库"), HSQL("hsql", "HSQL数据库"), SQLITE("sqlite", "SQLite数据库"), POSTGRE_SQL("postgresql", "Postgre数据库"), SQL_SERVER2005("sqlserver2005", "SQLServer2005数据库"), SQL_SERVER("sqlserver", "SQLServer数据库"), DM("dm", "达梦数据库"), XU_GU("xugu", "虚谷数据库"), KINGBASE_ES("kingbasees", "人大金仓数据库"), PHOENIX("phoenix", "Phoenix HBase数据库"), GAUSS("zenith", "Gauss 数据库"), CLICK_HOUSE("clickhouse", "clickhouse 数据库"), GBASE("gbase", "南大通用(华库)数据库"), GBASEDBT("gbasedbt", "南大通用数据库"), OSCAR("oscar", "神通数据库"), SYBASE("sybase", "Sybase ASE 数据库"), OCEAN_BASE("oceanbase", "OceanBase 数据库"), FIREBIRD("Firebird", "Firebird 数据库"), HIGH_GO("highgo", "瀚高数据库"), CUBRID("cubrid", "CUBRID数据库"), GOLDILOCKS("goldilocks", "GOLDILOCKS数据库"), CSIIDB("csiidb", "CSIIDB数据库"), SAP_HANA("hana", "SAP_HANA数据库"), IMPALA("impala", "impala数据库"), OTHER("other", "其他数据库"); private final String db; private final String desc; public static DbType getDbType(String dbType) { DbType[] var1 = values(); int var2 = var1.length; for(int var3 = 0; var3 < var2; ++var3) { DbType type = var1[var3]; if (type.db.equalsIgnoreCase(dbType)) { return type; } } return OTHER; } public String getDb() { return this.db; } public String getDesc() { return this.desc; } private DbType(final String db, final String desc) { this.db = db; this.desc = desc; }}
来源地址:https://blog.csdn.net/aikudexiaohai/article/details/129138686