SpringBoot集成Mybatis并具有分页功能PageHelper
SpringBoot集成Mybatis并具有分页功能PageHelper
环境:IDEA编译工具
第一步:生成测试的数据库表和数据
-
SET FOREIGN_KEY_CHECKS=0;
-
-
-- ----------------------------
-
-- Table structure for user
-
-- ----------------------------
-
DROP TABLE IF EXISTS `user`;
-
CREATE TABLE `user` (
-
`test_id` bigint(20) NOT NULL COMMENT '主键ID',
-
`tenant_id` bigint(20) NOT NULL COMMENT '租户ID',
-
`name` varchar(30) DEFAULT NULL COMMENT '名称',
-
`age` int(11) DEFAULT NULL COMMENT '年龄',
-
`test_type` int(11) DEFAULT NULL COMMENT '测试下划线字段命名类型',
-
`test_date` datetime DEFAULT NULL COMMENT '日期',
-
`role` bigint(20) DEFAULT NULL COMMENT '测试',
-
`phone` varchar(11) DEFAULT NULL COMMENT '手机号码',
-
PRIMARY KEY (`test_id`)
-
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-
-
-- ----------------------------
-
-- Records of user
-
-- ----------------------------
-
INSERT INTO `user` VALUES ('0', '1', '雷锋', '1', '1', '2017-01-01 01:01:01', '1', '10010');
-
INSERT INTO `user` VALUES ('1', '1', '三毛', '2', '1', '2017-02-02 01:01:01', '1', '10086');
-
INSERT INTO `user` VALUES ('2', '1', '小马', '1', '1', '2017-03-03 01:01:01', '1', '10000');
-
INSERT INTO `user` VALUES ('3', '2', '麻花藤', '1', '1', '2017-03-03 01:01:01', '1', '10000');
-
INSERT INTO `user` VALUES ('4', '2', '东狗', '2', '1', '2017-03-03 01:01:01', '1', '10086');
-
INSERT INTO `user` VALUES ('5', '1', '王五', '2', '1', '2017-03-03 01:01:01', '1', '10010');
-
INSERT INTO `user` VALUES ('6', '1', '小小三毛', '2', '1', '2017-02-02 01:01:01', '1', '10086');
将以上的sql的代码放到Navicat中进行新建查询的操作,,生成数据库和表的数据
第二步:创建springboot的项目
选中这几个类包,,然后进行springboot和mybatis的集成
然后需要在pom文件里面集成pageHelper的插件
<dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper-spring-boot-starter</artifactId> <version>1.2.3</version> </dependency>
第三步:在工程目录下面创建应有的包,例如下图展示了工程目录,并标记了哪些是新建立的包
第四步:生成数据库表中推应的实体类的文件(User实体类)
package com.example.demo.entity; import lombok.Data; import java.util.Date; @Data public class User { private Integer testId; private Integer tenantId; private String name; private Integer age; private Integer testType; private Date testDate; private Integer role; private String phone; @Override public String toString() { return "User{" + "testId=" + testId + ", tenantId=" + tenantId + ", name='" + name + '\'' + ", age=" + age + ", testType=" + testType + ", testDate=" + testDate + ", role=" + role + ", phone='" + phone + '\'' + '}'; } }
第五步:配置mybatis的mapper的文件在哪里,并且配置pageHelper的配置文件
修改application.yml文件里面的内容
#运行的端口 server: port: 8088 #数据库连接池 spring: datasource: driver-class-name: com.mysql.jdbc.Driver username: root password: 521521 url: jdbc:mysql://localhost:3306/springmvc?characterEncoding=utf-8&useSSL=false #让mybatis知道mapper在哪里 mybatis: mapper-locations: classpath:mapper/*.xml #分页的配置 pagehelper: offset-as-page-num: true row-bounds-with-count: true reasonable: true
第六步:写UserMapper.java文件,,,是一个interface
package com.example.demo.mapper; import com.example.demo.entity.User; import org.apache.ibatis.annotations.Mapper; import org.springframework.stereotype.Component; import java.util.List; @Mapper @Component public interface UserDao { List<User> findAll(); }
第七步:生成对应的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.example.demo.mapper.UserDao"> <select id="findAll" resultType="com.example.demo.entity.User"> SELECT u.test_id AS testId, u.age, u.name, u.phone, u.role, u.tenant_id AS tenantId, u.test_date AS testDate FROM user u </select> </mapper>
第八步:进行测试在单元测试里面,,看看具体好不好用
package com.example.demo.mapper; import com.example.demo.entity.User; import com.github.pagehelper.PageHelper; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.test.context.junit4.SpringRunner; import java.util.List; @RunWith(SpringRunner.class) @SpringBootTest public class UserDaoTest { @Autowired private UserDao userDao; @Test public void findAll() { PageHelper.startPage(4, 2); List<User> all = userDao.findAll(); for (User user : all) { System.out.println(user); } } }
这个单元测试类里面,,,在查询之前就规定好了,第几页,每页几条数据。
转自https://blog.csdn.net/lovePaul77/article/details/79581107