1、添加依赖
<!--分页插件-->
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper</artifactId>
<version>5.3.0</version>
</dependency>
2、配置PageHelper拦截器插件(2种方法)
方法一:
1、在mybatis-config.xml中配置插件
<plugins>
<!-- com.github.pagehelper为PageHelper类所在包名 -->
<plugin interceptor="com.github.pagehelper.PageInterceptor">
<!-- 数据库类型,没有默认值,此项必填,一般就配置这一个参数 -->
<property name="dialect" value="mysql"/>
<!-- 该参数默认为false -->
<!-- 设置为true时,会将RowBounds第一个参数offset当成pageNum页码使用 -->
<!-- 和startPage中的pageNum效果一样-->
<property name="offsetAsPageNum" value="true"/>
<!-- 该参数默认为false -->
<!-- 设置为true时,使用RowBounds分页会进行count查询 -->
<property name="rowBoundsWithCount" value="true"/>
<!-- 设置为true时,如果pageSize=0或者RowBounds.limit = 0就会查询出全部的结果 -->
<!-- (相当于没有执行分页查询,但是返回结果仍然是Page类型)-->
<property name="pageSizeZero" value="true"/>
<!-- 3.3.0版本可用 - 分页参数合理化,默认false禁用 -->
<!-- 启用合理化时,如果pageNum<1会查询第一页,如果pageNum>pages会查询最后一页 -->
<!-- 禁用合理化时,如果pageNum<1或pageNum>pages会返回空数据 -->
<property name="reasonable" value="true"/>
</plugin>
</plugins>
方案二:
在spring.xml中引入mybatis文件
<!--加载配置文件-->
<bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="location" value="classpath:db.properties"/>
</bean>
<!--配置数据源-->
<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource">
<property name="driverClassName" value="${jdbc.driver}"/>
<property name="url" value="${jdbc.url}"/>
<property name="username" value="${jdbc.username}"/>
<property name="password" value="${jdbc.password}"/>
<!--初始化连接数量:根据你项目的并发进行评估-->
<property name="initialSize" value="${initialSize}"/>
<!--最大的连接个数-->
<property name="maxActive" value="${maxActive}"/>
<!--等待时间 单位是毫秒-->
<property name="maxWait" value="${maxWait}"/>
</bean>
<bean id="sqlFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<!-- 使用哪个数据库连接池 此时使用 ref引用 dataSource 代表使用的是 上面的 druid数据库连接池 -->
<property name="dataSource" ref="dataSource" />
<!-- 配置 mybatis的 配置文件位置-->
<property name="configLocation" value="classpath:mybatisConfig.xml" />
<!-- 扫描 所有的 mapper.xml文件的位置 注意 此处容易出问题 -->
<property name="mapperLocations" value="classpath:mapper/*Mapper.xml"/>
<!--别名扫描-->
<property name="typeAliasesPackage" value="com.qy151_16.entity"/>
<property name="configurationProperties">
<props>
<!--全局映射器启用缓存-->
<prop key="cacheEnabled">true</prop>
<!-- 查询时,关闭关联对象即时加载以提升性能 -->
<prop key="lazyLoadingEnabled">false</prop>
<!-- 设置关联对象加载的形态,此处为按需加载字段(加载字段由SQL指定),不会加载关联表的全部字段,以提升性能 -->
<prop key="aggressiveLazyLoading">true</prop>
<!-- 对于未知的SQL查询,容许返回不一样的结果集以达到通用的效果 -->
<prop key="multipleResultSetsEnabled">true</prop>
<!-- 容许使用列标签代替列名 -->
<prop key="useColumnLabel">true</prop>
<!-- 容许使用自定义的主键值(好比由程序生成的UUID 32位编码做为键值),数据表的PK生成策略将被覆盖 -->
<prop key="useGeneratedKeys">true</prop>
<!-- 给予被嵌套的resultMap以字段-属性的映射支持 -->
<prop key="autoMappingBehavior">FULL</prop>
<!-- 对于批量更新操做缓存SQL以提升性能 -->
<prop key="defaultExecutorType">BATCH</prop>
<!-- 数据库超过25000秒仍未响应则超时 -->
<prop key="defaultStatementTimeout">25000</prop>
</props>
</property>
<property name="plugins">
<array>
<bean class="com.github.pagehelper.PageInterceptor">
</bean>
</array>
</property>
</bean>