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 '',
`cid` int(11) DEFAULT NULL,
`title` varchar(60) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8; INSERT INTO `card` VALUES ('', '', 'aldsjkfla');
INSERT INTO `card` VALUES ('', '', '2222aldsjkfla');
INSERT INTO `card` VALUES ('', '', '');
INSERT INTO `card` VALUES ('', '', '');
INSERT INTO `card` VALUES ('', '', '');
INSERT INTO `card` VALUES ('', '', '');
INSERT INTO `card` VALUES ('', '', '');
INSERT INTO `card` VALUES ('', '', '');
INSERT INTO `card` VALUES ('', '', '');
INSERT INTO `card` VALUES ('', '', 'swswswsws');
INSERT INTO `card` VALUES ('', '', '');
INSERT INTO `card` VALUES ('', '', 'aaaaaa');
INSERT INTO `card` VALUES ('', '', 'asdfasdfadfadfadsf');
INSERT INTO `card` VALUES ('', '', 'aswsweerererer');
INSERT INTO `card` VALUES ('', '', 'dfdfdfdfdfa');
INSERT INTO `card` VALUES ('', '', 'dfdsfsadf');
INSERT INTO `card` VALUES ('', '', 'agtgtgtgtg');
INSERT INTO `card` VALUES ('', '', '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; @Service
public 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
看一下,是数据分页。
10—mybatis 通用mapper插件 pagehelper 分页的更多相关文章
- Spring Boot MyBatis 通用Mapper插件集成 good
看本文之前,请确保你已经在SpringBoot中集成MyBatis,并能正常使用.如果没有,那么请先移步 http://blog.csdn.net/catoop/article/details/505 ...
- Spring Boot MyBatis 通用Mapper插件集成
Mybatis在使用过程中需要三个东西,每张表对应一个XXMapper.java接口文件,每张表对应一个XXMapper.xml文件,每张表对应一个Entity的Java文件. 其中XXMappe ...
- springboot 使用mybatis 通用Mapper,pagehelper
首先需要maven导入需要的包,这里用的是sqlserver,druid,jtds连接数据库 <dependency> <groupId>com.alibaba</gro ...
- springboot学习笔记:8. springboot+druid+mysql+mybatis+通用mapper+pagehelper+mybatis-generator+freemarker+layui
前言: 开发环境:IDEA+jdk1.8+windows10 目标:使用springboot整合druid数据源+mysql+mybatis+通用mapper插件+pagehelper插件+mybat ...
- Spring boot后台搭建一使用MyBatis集成Mapper和PageHelper
目标: 使用 Spring boot+MyBatis+mysql 集成 Mapper 和 PageHelper,实现基本的增删改查 先建一个基本的 Spring Boot 项目开启 Spring B ...
- Springboot集成mybatis通用Mapper与分页插件PageHelper
插件介绍 通用 Mapper 是一个可以实现任意 MyBatis 通用方法的框架,项目提供了常规的增删改查操作以及 Example 相关的单表操作.通用 Mapper 是为了解决 MyBatis 使用 ...
- Spring boot集成 MyBatis 通用Mapper
配置 POM文件 <parent> <groupId>org.springframework.boot</groupId> <artifactId>sp ...
- (一 、上)搭建简单的SpringBoot + java + maven + mysql + Mybatis+通用Mapper 《附项目源码》
最近公司一直使用 springBoot 作为后端项目框架, 也负责搭建了几个新项目的后端框架.在使用了一段时间springBoot 后,感觉写代码 比spring 更加简洁了(是非常简洁),整合工具也 ...
- Mybatis通用Mapper(转)
转自:http://blog.csdn.net/isea533/article/details/41457529 极其方便的使用Mybatis单表的增删改查 项目地址:http://git.oschi ...
随机推荐
- laydate年份选择,关闭底框,点击指定年份就选择然后关闭控件,翻页不选择也不关闭控件
如下图,翻页不选择也不关闭.点击指定年份时再选择和关闭控件 代码如下 // 默认没有选择,把判断赋值当前时间 var iYearCode = parseInt(new Date().getFullYe ...
- 【转帖】Linux 内核系统架构
Linux 内核系统架构 描述Linux内核的文章已经有上亿字了 但是对于初学者,还是应该多学习多看,毕竟上亿字不能一下子就明白的. 即使看了所有的Linux 内核文章,估计也还不是很明白,这时候 ...
- EF-初识
什么是ORM 起源随着编程的发展,程序里都是面向对象啥的,但是数据库发展呢 网状数据库 ->层次数据库 ->关系数据库(当然还有nosql数据库 我们只是做热数据缓存 后面将会讲到) ...
- git简易指南
目录 工作流 初始化仓库 查看分支 添加和提交 推送改动 分支 重命名分支 更新与合并 替换本地改动 回滚 远程仓库 有用的贴士 GIT vs SVN 工作流 你的本地仓库由 git 维护的三棵&qu ...
- laravle6.0-IOC-DI浅谈
1.什么是IOC,DI IOC(Inversion of Control)控制反转:ioc意味着,你将自己设计好的对象交给容器来控制,而不是传统的在你的对象内部直接控制.比如: 人 操控 手机 做一些 ...
- php微信小程序生成二维码,出现乱码,{"errcode":44002,"errmsg":"empty post data"},'{"errcode":41001,"errmsg":"access_token missing hint: [OoC.2a0822e255]"}',以及其他的坑
微信小程序的坑简直比我的头发还多,今天下午获取微信二维码,遇到的44002,41001,还有图片没法正常显示以及小程序参数获取的问题,接下来一一解决 首先获取微信token然后再获取二维码这个没什么好 ...
- Java+Tomcat 环境部署
Java+Tomcat 环境部署 下面在Centos7进行安装Java+Tomcat,网上的很多文章,我在部署中都有些问题,下面是我自己总结的一个安装过程! 安装Java环境 首先,我们先到Java官 ...
- Django中常用的那些模块路径
Django中常用的那些模块路径 from django.shortcuts import HttpResponse, render, redirect from django import temp ...
- Maven web项目创建
一.New →Other →Maven→Maven Module 二.填入Module Name 三.选择maven-archetype-webapp 四.填入Group Id.Artifact Id ...
- (三)ActiveMQ之发布- 订阅消息模式实现
一.概念 发布者/订阅者模型支持向一个特定的消息主题发布消息.0或多个订阅者可能对接收来自特定消息主题的消息感兴趣.在这种模型下,发布者和订阅者彼此不知道对方.这种模式好比是匿名公告板.这种模式被概括 ...