SpringBoot分页组件PageHelper介绍及使用

这篇主要说一下上篇介绍的mybatis分页组件,如果你们觉得没必要,非要自己封装分页,也是可以的啦,就像博主上一篇,自己写个分页实现,然后自己捣鼓就好了。

#maven依赖

    <!-- mysql -->
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>5.1.32</version>
    </dependency>

    <!-- mybatis -->
    <dependency>
        <groupId>org.mybatis.spring.boot</groupId>
        <artifactId>mybatis-spring-boot-starter</artifactId>
        <version>${spring.mybatis.version}</version>
    </dependency>
    <dependency>
        <groupId>org.mybatis.spring.boot</groupId>
        <artifactId>mybatis-spring-boot-autoconfigure</artifactId>
        <version>${spring.mybatis.version}</version>
    </dependency>

    <!--mapper-->
    <dependency>
        <groupId>tk.mybatis</groupId>
        <artifactId>mapper-spring-boot-starter</artifactId>
        <version>1.0.0</version>
    </dependency>

    <!-- 分页插件 https://github.com/pagehelper/Mybatis-PageHelper -->
    <dependency>
        <groupId>com.github.pagehelper</groupId>
        <artifactId>pagehelper-spring-boot-starter</artifactId>
        <version>1.0.0</version>
    </dependency>

#实体公共类与Mapper公共类

实体公共类 BaseEntity.java,其中的get/set略。说一下@GeneratedValue(strategy = GenerationType.IDENTITY)主键增长策略,@Transient实体中如果有和数据库没有对应的属性必须要加这个注解

@Id
@Column(name = "id")
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer id;

[@Transient](https://my.oschina.net/transient)
private Integer page = 1;

[@Transient](https://my.oschina.net/transient)
private Integer rows = 10;

公用的Mapper.java类,这个类不能被扫描到,如下很简单空着就行

public interface BaseMapper<T> extends Mapper<T>, MySqlMapper<T> {
}

#Mapper与mapper.xml还有实体类写法

Mapper类,mapper类继承BaseMapper类,下面的那个接口是扩展的,写自己的业务的。到这的时候,你的增删改查都具备了。

@Repository("userMapper")
public interface UserMapper extends BaseMapper<User>{

    /**
     * 这个接口是自己业务接口
     * @param name
     * @return
     */
    List<User> queryUserInfoByName(@Param("name") String name);

}

mapper.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.dengzy.kuj.mybatis.dao.UserMapper">

    <resultMap id="BaseResultMap" type="com.dengzy.kuj.mybatis.model.User">
        <id column="id" jdbcType="INTEGER" property="id" />
        <result column="name" jdbcType="VARCHAR" property="name" />
        <result column="createDate" jdbcType="TIMESTAMP" property="createdate" />
    </resultMap>
    <sql id="Base_Column_List">
        id, name, createDate
    </sql>

    <select id="queryUserInfoByName" parameterType="java.lang.String" resultMap="BaseResultMap">
        select * from user
        <where>
            <if test="null != name">
                and name = #{name,jdbcType=VARCHAR}
            </if>

        </where>

    </select>
    
</mapper>

#Service里面使用 Service里面使用和平时一样是正常使用的,此处有展示一下mapper中含有的方法:

展示一下Mapper中已经有的默认方法 输入图片说明输入图片说明输入图片说明

#Controller里面使用 从Controller里面使用,service返回的数据放到PageInfo中即可

@RequestMapping(value = "queryUserPage")
public PageInfo<User> queryUserPage(User user){
    List<User> userInfoList =  userService.getAllUser(user);
    return new PageInfo<User>(userInfoList);
}

#配置文件配置

配置文件如下,为何要配置这几个属性是根据自己需要来的,正常默认即可使用了。

#mybatis
mybatis:
  config-location: classpath:META-INF\mybatis-config.xml

mapper:
    mappers:
        - com.dengzy.kuj.mybatis.common.mapping.BaseMapper
    not-empty: true
    identity: MYSQL

pagehelper:
  helperDialect: mysql
  reasonable: true  #为了使用输入页数为负或者超出最大页时候使页数为最小或最大值
  supportMethodsArguments: true
  params: count=countSql
  pageSizeZero: true #pageSize=0 or RowBounds.Limit = 0的时候就不适用分页,但是返回对象还是PageInfo

#启动及浏览器访问

输入图片说明

你说你不需要这么多参数,那你就不需要返回PageInfo对象就可以了,请求返回如下

[
{
"id": 2,
"page": 1,
"rows": 10,
"name": "user",
"createdate": 1483703436000
},
{
"id": 3,
"page": 1,
"rows": 10,
"name": "user",
"createdate": 1483703459000
},
{
"id": 4,
"page": 1,
"rows": 10,
"name": "user",
"createdate": 1483703660000
},
{
"id": 5,
"page": 1,
"rows": 10,
"name": "user",
"createdate": 1483703698000
}
]

转载于:https://my.oschina.net/u/1456911/blog/822300

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值