一、添加pom.xml依赖:
<dependencies> <dependency> <groupId>com.github.pagehelper
groupId> <artifactId>pagehelper
artifactId> <version>4.1.3
version>
dependency>
dependencies>
二、添加mybatis-config.xml插件配置:
<plugins> <!-- 分页查询插件 --> <plugin interceptor="com.github.pagehelper.PageHelper"> <!-- 4.0.0以后版本可以不设置该参数,支持数据库类型Oracle,Mysql,MariaDB,SQLite,Hsqldb,PostgreSQL六种数据库--> <property name="dialect" value="MariaDB" /> <!-- 该参数默认为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="false" /> --> <!-- 3.5.0版本可用 - 为了支持startPage(Object params)方法 --> <!-- 增加了一个`params`参数来配置参数映射,用于从Map或ServletRequest中取值 --> <!-- 可以配置pageNum,pageSize,count,pageSizeZero,reasonable,orderBy,不配置映射的用默认值 --> <!-- 不理解该含义的前提下,不要随便复制该配置 --> <!-- <property name="params" value="pageNum=pageHelperStart;pageSize=pageHelperRows;" /> --> <!-- 支持通过Mapper接口参数来传递分页参数 --> <property name="supportMethodsArguments" value="false" /> <!-- always总是返回PageInfo类型,check检查返回类型是否为PageInfo,none返回Page --> <property name="returnPageInfo" value="none" /> </plugin> </plugins>
三、UserMapper.xml中的SQL语句写法:
<select id="selectByPrimaryKeyList" parameterType="java.lang.String" resultMap="BaseResultMap"> select * from t_user where user_id = #{userId,jdbcType=VARCHAR}
select>
四、UserMapper.java类写法:
package com.seesun.mapper; import java.util.List; import com.seesun.bean.UserBean; public interface UserMapper {
List<UserBean> selectByPrimaryKeyList(String id); }
五、测试类:
package com.seesun.judge; import org.junit.Test; import org.junit.runner.RunWith; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.test.context.ContextConfiguration; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; import com.seesun.mapper.UserMapper; import com.seesun.bean.UserBean; @RunWith(org.springframework.test.context.junit4.SpringJUnit4ClassRunner.class) @ContextConfiguration({
"/META-INF/spring/*.xml"}) //加载配置文件 public class TestDemo {
private Logger loggger = LoggerFactory.getLogger(TestDemo.class); @Autowired private UserMapper userMapper; @Test public void testUserInfo() {
try {
String id = "YaU4MWqvuGINMcs2FXD"; PageInfo<UserBean> page = queryList(1, 5, id); System.out.println("总条目数:" + page.getTotal()); for (UserBean entity : page.getList()) {
loggger.info(entity.getUserAccount()); } } catch (Exception e) {
loggger.error(e.getMessage()); } } public PageInfo<UserBean> queryList(Integer pangNum, Integer pageSize, String id){
return PageHelper.startPage(pangNum, pageSize).doSelectPageInfo(() -> userMapper.selectByPrimaryKeyList(id)); } }
持续更新中…
发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/178589.html原文链接:https://javaforall.net
