我是阿福,公众号「阿福聊编程」作者,一个在后端技术路上摸盘滚打的程序员,在进阶的路上,共勉!文章已收录在 JavaSharing 中,包含Java技术文章,面试指南,资源分享。
思路分析
MyBatis的PageHelper插件(后台)
作用
以完全非侵入的方式在原有查询基础上附加分页效果。从SQL层面来说,在SQL语句后面附加LIMIT子句。从Java代码来说,把原来返回的List类型封装为Page类型。
依赖信息
<!-- MyBatis分页插件 -->
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper</artifactId>
<version>4.0.0</version>
</dependency>
配置方式
那么如何让插件起作用呢?就需要在SqlSessionFactoryBean中配置MyBatis插件
<!--配置SqlSessionFactoryBean-->
<bean id="sqlSessionFactoryBean" class="org.mybatis.spring.SqlSessionFactoryBean">
<!--装配数据源-->
<property name="dataSource" ref="dataSource"></property>
<!--mybatis配置文件所在的位置-->
<property name="configLocation" value="classpath:/mybstis/mybatis-config.xml"></property>
<!--配置mapper所在的文件位置-->
<property name="mapperLocations" value="classpath:/mybstis/mapper/*Mapper.xml"></property>
<property name="plugins">
<array>
<bean class="com.github.pagehelper.PageHelper">
<!-- 配置插件属性 -->
<property name="properties">
<props>
<!-- 配置数据库方言 -->
<!-- MySQL分页:LIMIT -->
<!-- Oracle分页:TopN分析 -->
<prop key="dialect">mysql</prop>
<!-- 配置自动修正页码 -->
<!-- pageNo的有效范围:1~总页数 -->
<prop key="reasonable">true</prop>
</props>
</property>
</bean>
</array>
</property>
</bean>
数据库的Sql 脚本
SELECT
*
FROM
t_admin
WHERE
loginacct LIKE CONCAT('%','ad','%')
OR username LIKE CONCAT('%','ad','%')
OR email LIKE CONCAT('%','ad','%')
AdminMapper配置文件
<resultMap id="BaseResultMap" type="com.zfcoding.model.AdminBean" >
<id column="id" property="id