参考网址:https://www.cnblogs.com/kangoroo/p/7998433.html
概述:
com.github.pagehelper.PageHelper是一款好用的开源的Mybatis第三方物理分页插件。以上的那篇博客已经写的很好了,
但是仍然不是我想要的,我觉得还有优化的地方,所以自己又优化了一下。
1. PageHelper的使用
(1)依赖架包:
<mybatis-pagehelper.version>4.1.6</mybatis-pagehelper.version> <dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper</artifactId> <version>${mybatis-pagehelper.version}</version> </dependency>
(2)mybatis-config.xml中配置如下:
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD SQL Map Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"> <configuration> <settings> <!-- 允许JDBC 生成主键。需要驱动器支持。如果设为了true,这个设置将强制使用被生成的主键,有一些驱动器不兼容不过仍然可以执行。 default:false --> <setting name="useGeneratedKeys" value="true" /> <!-- 这是默认的执行类型 (SIMPLE: 简单; REUSE: 执行器可能重复使用prepared statements语句;BATCH: 执行器可以重复执行语句和批量更新) --> <setting name="defaultExecutorType" value="REUSE" /> <!-- 使用驼峰命名法转换字段 --> <setting name="mapUnderscoreToCamelCase" value="true"/> <!-- 使全局的映射器启用或禁用缓存。 --> <setting name="cacheEnabled" value="true"/> <!-- 全局启用或禁用延迟加载。当禁用时,所有关联对象都会即时加载。 --> <!-- <setting name="lazyLoadingEnabled" value="true"/>--> <!-- 当启用时,有延迟加载属性的对象在被调用时将会完全加载任意属性。否则,每种属性将会按需要加载。--> <!-- <setting name="aggressiveLazyLoading" value="true"/>--> <!-- 是否允许单条sql 返回多个数据集 (取决于驱动的兼容性) default:true--> <!-- <setting name="multipleResultSetsEnabled" value="true"/>--> <!-- 是否可以使用列的别名 (取决于驱动的兼容性) default:true--> <!-- <setting name="useColumnLabel" value="true"/>--> <!-- 指定 MyBatis 如何自动映射 数据基表的列 NONE:不隐射 PARTIAL:部分 FULL:全部 --> <!-- <setting name="autoMappingBehavior" value="PARTIAL"/>--> <!-- 设置本地缓存范围 session:就会有数据的共享 statement:语句范围 (这样就不会有数据的共享 ) defalut:session--> <!-- <setting name="localCacheScope" value="SESSION"/>--> <!-- 设置但JDBC类型为空时,某些驱动程序 要指定值,default:OTHER,插入空值时不需要指定类型--> <!-- <setting name="jdbcTypeForNull" value="NULL"/> --> <!-- 打印sql语句 --> <setting name="logImpl" value="STDOUT_LOGGING"/> </settings> <!-- 分页插件 --> <plugins> <plugin interceptor="com.github.pagehelper.PageHelper"> <property name="dialect" value="mysql"/> <property name="offsetAsPageNum" value="false"/> <property name="rowBoundsWithCount" value="false"/> <property name="pageSizeZero" value="true"/> <property name="reasonable" value="false"/> <property name="supportMethodsArguments" value="false"/> <property name="returnPageInfo" value="none"/> </plugin> </plugins> </configuration>
(3)既然使用了mybatis,那么直接在spring-mybatis.xml的数据源中注入即可:
<!-- 配置SqlSessionFactoryBean --> <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <!-- 用于配置数据库连接池 --> <property name="dataSource" ref="dataSource" /> <!-- 用于配置持久层映射文件在哪里 --> <property name="mapperLocations" value="classpath:com/base/mapper/*.xml" /> <!-- 加载mybatis配置文件 (全局驼峰) --> <property name="configLocation" value="classpath:mybatis/mybatis-config.xml" /> </bean>
按照以上步骤可以完全使用。