Mybatis分页插件 - PageHelper与springBoot的整合

该实例在:https://github.com/gholly/Mybatis-PageHelper-SpringBoot

1.首先添加项目依赖

        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>1.0.1</version>
        </dependency>
        <!--分页插件-->
        <dependency>
            <groupId>com.github.pagehelper</groupId>
            <artifactId>pagehelper-spring-boot-starter</artifactId>
            <version>1.1.1</version>
        </dependency>
       <!--作者的mybatis插件-->
       <dependency>
            <groupId>tk.mybatis</groupId>
            <artifactId>mapper-spring-boot-starter</artifactId>
            <version>1.1.3</version>
        </dependency>

2.yml配置

server:
  port: 8383


spring:
  datasource:
    url: jdbc:mysql://127.0.0.1/test?useUnicode=true&characterEncoding=UTF-8&allowMultiQueries=true&autoReconnect=true
    username: upgrade
    password: upgrade
    driverClassName: com.mysql.jdbc.Driver
    type: com.alibaba.druid.pool.DruidDataSource



#有关插件的配置情况
pagehelper:
  helperDialect: mysql
  reasonable: true
  supportMethodsArguments: true
  params: count=countSql




logging:
  level.com.test.data: debug

3.实体类model层:

BaseModel.java

package com.test.data.model;


import javax.persistence.*;

/**
 * Created by guanguan on 2017/7/31.
 */
public class BaseModel {


    @Id  //标注用于声明一个实体类的属性映射为数据库的主键列,也可置于属性的getter方法之前
    @Column(name="Id")
    @GeneratedValue(strategy= GenerationType.AUTO) //用于标注主键的生成策略,通过strategy属性指定,默认情况下,JPA 自动选择一个最适合底层数据库的主键生成策略:SqlServer对应identity,MySQL 对应 auto increment。
    private Integer id;

    @Transient  //声明一个实例变量,当对象存储时,它的值不需要维持
    private Integer page=1;

    @Transient
    private Integer rows=10;


    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public Integer getPage() {
        return page;
    }

    public void setPage(Integer page) {
        this.page = page;
    }

    public Integer getRows() {
        return rows;
    }

    public void setRows(Integer rows) {
        this.rows = rows;
    }
}

User.java

package com.test.data.model;

/**
 * Created by guanguan on 2017/7/20.
 */
public class User extends BaseModel{

    private Integer id;
    private String userName;
    

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public String getUserName() {
        return userName;
    }

    public void setUserName(String userName) {
        this.userName = userName;
    }

   
}

4.Mybatis的xml文件

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.test.data.dao.UserMapper">

    <resultMap id="userResultMap" type="com.test.data.model.User">
        <id property="id" column="id"/>
        <result property="userName" column="user_name"/>
       
    </resultMap>

    <sql id="sql1">
        `id`,`user_name`
    </sql>

    <select id="findBy" resultMap="userResultMap" parameterType="HashMap">
        select
        <include refid="sql1"/>
        from `user`
        <trim prefixOverrides="and" prefix="where">
            <if test="id!=null">
                and `id`=#{id}
            </if>
            <if test="userName!=null">
                and `user_name`=#{userName}
            </if>
            
        </trim>
    </select>

 

</mapper>

5.controller文件

package com.test.data.controller;

import com.alibaba.fastjson.JSON;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.test.data.model.User;
import com.test.data.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import java.util.HashMap;
import java.util.List;

/**
 * Created by guanguan on 2017/7/20.
 */
@Controller
public class controller {
    @Autowired
    UserService userService;


    @RequestMapping("/")
    @ResponseBody
    public String index() {
        Integer page=2;
        Integer rows=3;

        PageHelper.startPage(page, rows);
        List<User> userList = userService.findBy(new HashMap<Object, Object>());
        PageInfo pageInfo = new PageInfo(userList);

        return JSON.toJSONString(userList);
     }
}

运行结果:

105500_tz7e_2263272.png

 

打断点获取pageInfo的值,其中查询的结果在pageInfo的list中:

105645_nLOJ_2263272.png

转载于:https://my.oschina.net/u/2263272/blog/1498536

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Spring Boot整合MyBatis分页插件的步骤如下: 1. 在pom.xml文件中添加MyBatis分页插件的依赖: ``` <dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper-spring-boot-starter</artifactId> <version>1.2.5</version> </dependency> ``` 2. 在application.properties文件中配置MyBatis分页插件的参数: ``` # 分页插件配置 pagehelper.helperDialect=mysql pagehelper.reasonable=true pagehelper.supportMethodsArguments=true pagehelper.params=count=countSql ``` 3. 在Mapper接口中添加分页查询方法: ``` List<User> selectByPage(@Param("pageNum") int pageNum, @Param("pageSize") int pageSize); ``` 4. 在Service层中调用分页查询方法: ``` PageHelper.startPage(pageNum, pageSize); List<User> userList = userDao.selectByPage(pageNum, pageSize); PageInfo<User> pageInfo = new PageInfo<>(userList); ``` 5. 在Controller层中返回分页查询结果: ``` return new Result<>(ResultCode.SUCCESS, pageInfo); ``` 以上就是Spring Boot整合MyBatis分页插件的基本步骤,希望对你有所帮助。 ### 回答2: Spring Boot是一个快速、方便的开发框架,可以帮助开发人员快速构建Web应用程序。MyBatis是一种优秀的持久化层框架,它可以让开发人员使用Java对象与关系数据库进行交互。分页插件MyBatis的一部分,它可以帮助开发人员实现分页查询数据的操作。下面将介绍如何在Spring Boot应用程序中整合MyBatis分页插件。 首先,在Spring Boot应用程序的pom.xml文件中添加MyBatis的依赖。这样可以保证应用程序能够正常地使用MyBatis框架。 接着,需要配置数据源。可以使用Spring Boot提供的自动配置,也可以手动配置数据源的相关信息。配置完成后,需要在mybatis-config.xml文件中添加分页插件的配置信息。具体配置如下: ```xml <plugins> <plugin interceptor="com.github.pagehelper.PageInterceptor"> <property name="dialect" value="mysql" /> <!--下面的参数根据实际情况进行调整--> <property name="reasonable" value="true" /> <property name="supportMethodsArguments" value="true" /> <property name="params" value="count=countSql" /> </plugin> </plugins> ``` 其中,dialect用于指定数据库的类型;reasonable用于指定是否合理化分页参数;supportMethodsArguments表示支持方法参数;params表示参数名映射。 最后,在Mapper接口的方法中添加分页参数即可。具体代码如下: ```java @Select("SELECT * FROM user WHERE username = #{username}") List<User> findByUsername(@Param("username") String username, PageBounds pageBounds); ``` 其中,PageBounds是分页插件所支持的参数类型,它包含分页信息的相关属性,例如当前页码、每页记录数等。然后,在Mapper.xml文件中添加相应的SQL语句即可实现分页功能。 综上所述,Spring Boot整合MyBatis分页插件的过程并不复杂,只需要按照上述步骤进行操作即可。这样可以快速方便地实现分页功能,提高Web应用程序的性能和效率。 ### 回答3: Spring Boot 是一款快速开发的框架,可帮助Java开发人员快速搭建基于Spring的应用程序。MyBatis则是一种ORM框架,它可以将Java对象映射到数据库表中,从而实现数据库的操作。分页插件则是MyBatis中提供的一种插件,它可以对查询结果进行分页处理。本文将为大家介绍如何在Spring Boot中整合MyBatis分页插件。 首先,在 pom.xml 文件中添加如下代码片段,以依赖 MyBatisMyBatis分页插件: ```xml <!-- MyBatis 依赖 --> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>2.2.0</version> </dependency> <!-- MyBatis 分页插件依赖 --> <dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper-spring-boot-starter</artifactId> <version>1.3.0</version> </dependency> ``` 然后,创建 MyBatis 配置文件 mybatis-config.xml,在其中添加如下分页插件配置: ```xml <plugins> <plugin interceptor="com.github.pagehelper.PageInterceptor"> <property name="dialect" value="mysql"/> </plugin> </plugins> ``` 紧接着,创建 MyBatis 的 Mapper 文件,并在其中添加查询方法: ```java public interface UserMapper { List<User> findAll(); } ``` 在 Controller 中,则可以通过注入 UserMapper 对象来直接调用查询方法,从而实现分页查询: ```java @RestController @RequestMapping("/users") public class UserController { @Autowired private UserMapper userMapper; @GetMapping("/list") public PageInfo<User> getUsers(@RequestParam(defaultValue = "1") Integer pageNum, @RequestParam(defaultValue = "10") Integer pageSize) { PageHelper.startPage(pageNum, pageSize); List<User> userList = userMapper.findAll(); return new PageInfo<>(userList); } } ``` 以上的代码中,我们使用 @RequestParam 注解来接收前端传来的 pageNum 和 pageSize 参数,然后调用 PageHelper.startPage 方法设置分页信息。接着调用 UserMapper 接口中的查询方法,并将结果封装在 PageInfo 对象中返回给前端。 最后,启动 Spring Boot 应用程序,访问 http://localhost:8080/users/list 即可实现基于 MyBatis 分页插件的分页查询。 综上所述,通过如上步骤,我们就成功地完成了 Spring Boot 对 MyBatis 分页插件整合,并实现了分页查询功能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值