10—mybatis 通用mapper插件 pagehelper 分页

spring boot真的太好用了,大家以后多多使用,今天来说说pagehelper 来做mybatis分页,我用的是spring boot 做的开发,后面会把源码发出来。

pagehelper(https://github.com/pagehelper/Mybatis-PageHelper) 是什么我就不多说了,网上太多太多了。

还是上代码吧

Card表

CREATE TABLE `card` (
  `id` int(11) NOT NULL DEFAULT ‘0‘,
  `cid` int(11) DEFAULT NULL,
  `title` varchar(60) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

INSERT INTO `card` VALUES (‘1‘, ‘2‘, ‘aldsjkfla‘);
INSERT INTO `card` VALUES (‘2‘, ‘3‘, ‘2222aldsjkfla‘);
INSERT INTO `card` VALUES (‘3‘, ‘1‘, ‘2323‘);
INSERT INTO `card` VALUES (‘4‘, ‘4‘, ‘4444444444‘);
INSERT INTO `card` VALUES (‘5‘, ‘5‘, ‘55555555555555‘);
INSERT INTO `card` VALUES (‘6‘, ‘6‘, ‘66666666666666‘);
INSERT INTO `card` VALUES (‘7‘, ‘7‘, ‘77777777777777‘);
INSERT INTO `card` VALUES (‘8‘, ‘8‘, ‘88888888888888888888‘);
INSERT INTO `card` VALUES (‘9‘, ‘9‘, ‘999999999999999999‘);
INSERT INTO `card` VALUES (‘10‘, ‘10‘, ‘swswswsws‘);
INSERT INTO `card` VALUES (‘11‘, ‘11‘, ‘112121222222‘);
INSERT INTO `card` VALUES (‘12‘, ‘12‘, ‘aaaaaa‘);
INSERT INTO `card` VALUES (‘13‘, ‘13‘, ‘asdfasdfadfadfadsf‘);
INSERT INTO `card` VALUES (‘14‘, ‘14‘, ‘aswsweerererer‘);
INSERT INTO `card` VALUES (‘15‘, ‘15‘, ‘dfdfdfdfdfa‘);
INSERT INTO `card` VALUES (‘16‘, ‘16‘, ‘dfdsfsadf‘);
INSERT INTO `card` VALUES (‘17‘, ‘17‘, ‘agtgtgtgtg‘);
INSERT INTO `card` VALUES (‘18‘, ‘18‘, ‘aaaggtgtg‘);

下面开始编码:

1.新建一个spring boot项目

2.导包

pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.2.1.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>org.zn.test</groupId>
    <artifactId>testpage</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>testpage</name>
    <description>Demo project for Spring Boot</description>

    <properties>
        <java.version>1.8</java.version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
            <exclusions>
                <exclusion>
                    <groupId>org.junit.vintage</groupId>
                    <artifactId>junit-vintage-engine</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <!--自动构造java-->
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>1.14.8</version>
        </dependency>
        <!--通用mapper启动器-->
        <dependency>
            <groupId>tk.mybatis</groupId>
            <artifactId>mapper-spring-boot-starter</artifactId>
            <version>2.0.4</version>
        </dependency>

        <!--分页助手启动器-->
        <dependency>
            <groupId>com.github.pagehelper</groupId>
            <artifactId>pagehelper-spring-boot-starter</artifactId>
            <version>1.2.5</version>
        </dependency>

        <!--mysql-->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.32</version>
        </dependency>
    </dependencies>
    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

</project>

3. 配置文件,包括数据地址等信息

application.yml

server:
  port: 8099
spring:
  application:
    name: testpage
  datasource:
    url: jdbc:mysql://localhost:3306/card
    username: root
    password: 123456
    driver-class-name: com.mysql.jdbc.Driver

#显示sql语句
mybatis:
  configuration:
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl

4.建立实体类 Card.java

package org.zn.test.testpage.entity;

import lombok.Data;
import lombok.ToString;
import tk.mybatis.mapper.annotation.KeySql;

import javax.persistence.Id;
import javax.persistence.Table;

@Table(name = "card")
@Data
@ToString
public class Card {
    @Id
    @KeySql(useGeneratedKeys = true)
    private Integer id;
    private Integer cid;
    private String title;
}

5.建立Mapper

CardMapper.java,这里注意用是通用mapper来实现的,所有继承tk.mybatis.mapper.common.Mapper的Mapper

package org.zn.test.testpage.mapper;

import org.zn.test.testpage.entity.Card;
import tk.mybatis.mapper.common.Mapper;

public interface CardMapper extends Mapper<Card> {

}

6.建立Servcie

CardService.java


package org.zn.test.testpage.service;

import com.github.pagehelper.PageHelper;import com.github.pagehelper.PageInfo;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Service;import org.zn.test.testpage.entity.Card;import org.zn.test.testpage.mapper.CardMapper;import tk.mybatis.mapper.entity.Example;

import java.util.List;

@Servicepublic class CardService {    @Autowired    private CardMapper cardMapper;

    public List<Card> GetPageList(Integer page,Integer rows,String sortBy,Boolean desc,String key)    {        //分页        PageHelper.startPage(page,rows);        //过滤        Example example=new Example(Card.class);        if(key!=""&&!key.equals("")){            example.createCriteria().orLike("title","%"+key+"%");        }        //排序        if(sortBy!=""&&!key.equals("")){            String orderByClause=sortBy+(desc?" DESC":" ASC");            example.setOrderByClause(orderByClause);        }        //查询        List<Card> list=cardMapper.selectByExample(example);        PageInfo<Card> info=new PageInfo<Card>(list);        return info.getList();    }

}

7.建立Controller

HomeController.java

package org.zn.test.testpage.controller;

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.RestController;
import org.zn.test.testpage.entity.Card;
import org.zn.test.testpage.service.CardService;

import java.util.List;

@RestController
@RequestMapping("/home")
public class HomeController {
    @Autowired
    private CardService cardService;

    @RequestMapping("/index")
    public String Index(int page,String key) {
        List<Card> list = cardService.GetPageList(page, 5, "id", true, key);

        StringBuilder sb = new StringBuilder();
        for (Card item : list) {
            sb.append(item+"</br>");
        }
        return sb.toString();
    }

}

8.配置启动类

TestpageApplication.java 就是spring boot启动类,要注意这里用@MapperScan("org.zn.test.testpage.mapper"),进入整包注入。

package org.zn.test.testpage;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import tk.mybatis.spring.annotation.MapperScan;

@SpringBootApplication
@MapperScan("org.zn.test.testpage.mapper")
public class TestpageApplication {
    public static void main(String[] args) {
        SpringApplication.run(TestpageApplication.class, args);
    }

}

9.启动,并访问

http://localhost:8099/home/index?page=1&key=a

看一下,是数据分页。

点击下载代码

原文地址:https://www.cnblogs.com/itmu89/p/11854102.html

时间: 2024-10-08 15:24:33

10—mybatis 通用mapper插件 pagehelper 分页的相关文章

MyBatis通用Mapper和PageHelper

如果项目中使用到了MyBatis框架,那么使用通用Mapper和PageHelper分页插件将极大的简化我们的操作.通用Mapper可以简化对单表的CRUD操作,PageHelper分页插件可以帮我们自动拼接分页SQL,并且可以使用MyBatis Geneator来自动生成实体类,Mapper接口和Mapper xml代码,非常的方便.插件地址及作者链接https://gitee.com/free. 引入依赖 这里使用Spring Boot来构建,可参考Spring-Boot中使用Mybatis

Spring Boot MyBatis 通用Mapper插件集成

看本文之前,请确保你已经在SpringBoot中集成MyBatis,并能正常使用.如果没有,那么请先移步 http://blog.csdn.net/catoop/article/details/50553714 做了解后,再按本文步骤操作. 使用MyBatis在我们通过xml集中配置SQL,并通过创建接口Mapper文件来完成持久化DAO层(mybatis内部使用的是动态代理,所以我们不需要自己编写实现类). 然而在实际开发中,单表操作非常多,如果你也想像JPA.JDBC那样做一个所谓的Base

Springboot集成mybatis通用Mapper与分页插件PageHelper(推荐)

插件介绍 通用 Mapper 是一个可以实现任意 MyBatis 通用方法的框架,项目提供了常规的增删改查操作以及 Example 相关的单表操作.通用 Mapper 是为了解决 MyBatis 使用中 90% 的基本操作,PageHelper则提供通用的分页查询功能,使用它们可以很方便的进行开发,可以节省开发人员大量的时间. 通用Mapper的GIT地址: https://gitee.com/free/Mapper 分页插件的GIT地址: https://github.com/pagehelp

SpringBoot+Mysql+Mybatis+Mybatis通用mapper+PageHelper整合

pom.xml <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4

Mybatis通用Mapper

转:http://blog.csdn.net/isea533/article/details/41457529 极其方便的使用Mybatis单表的增删改查 项目地址:http://git.oschina.net/free/Mapper 优点? 不客气的说,使用这个通用Mapper甚至能改变你对Mybatis单表基础操作不方便的想法,使用它你能简单的使用单表的增删改查,包含动态的增删改查. 程序使用拦截器实现具体的执行Sql,完全使用原生的Mybatis进行操作. 你还在因为数据库表变动重新生成x

Mybatis通用Mapper(转)

转自:http://blog.csdn.net/isea533/article/details/41457529 极其方便的使用Mybatis单表的增删改查 项目地址:http://git.oschina.net/free/Mapper 优点? 不客气的说,使用这个通用Mapper甚至能改变你对Mybatis单表基础操作不方便的想法,使用它你能简单的使用单表的增删改查,包含动态的增删改查. 程序使用拦截器实现具体的执行Sql,完全使用原生的Mybatis进行操作. 你还在因为数据库表变动重新生成

spring boot集成MyBatis 通用Mapper 使用总结

spring boot集成MyBatis 通用Mapper 使用总结 2019年 参考资料: Spring boot集成 MyBatis 通用Mapper SpringBoot框架之通用mapper插件(tk.mybatis) spring boot 如何优雅的使用mybatis-spring-boot-starter 三分钟让你看懂Springboot 中 Mybatis 的使用 Spring Boot 集成MyBatis__动力节点 ===================== end 原文地

浅谈Mybatis通用Mapper使用方法_java - JAVA

文章来源:嗨学网 敏而好学论坛www.piaodoo.com 欢迎大家相互学习 对单表进行增删改查是项目中不可避免的需求,Mybatis的通用Mapper插件使这些操作变得简单 添加maven依赖 在对应工程的pom.xml文件中添加 <dependency> <groupId>javax.persistence</groupId> <artifactId>persistence-api</artifactId> <version>1

MyBatis通用Mapper开发

MyBatis通用Mapper开发 通常情况下,MyBatis 的增删改查操作需要自己在相应xml中写相关语句,但是运用相关工具,其实可以很方便的自动生成单表的所有增删改查(通用的多表联合查询还是需要自己写).也可以根据具体环境,设计相关模板,自动生成符合要求的controller和service. 使用教程:http://git.oschina.net/free/Mapper#mybatis通用mapper3具体实践:后台权限通用框架