目录
插件介绍 Springboot集成mybatis的pagehelper插件yml配置 maven引入 SQL建表测试语句 application.yml连接数据库配置 创建IbaseCategory1Service与baseCategory1Mapper接口类 创建baseCategory1Mapper.xml 创建baseCategory1ServiceImpl实现类 创建CategoryController控制层 配置启动类启动项目即可
插件介绍
PageHelper分页插件支持任何复杂的单表、多表分页。它提供了通用的分页查询功能, 使用它可以很方便的进行开发,可以节省开发人员大量的时间。 首先需要新建Springboot项目,下一步输入信息接着正常创建项目即可
Springboot集成mybatis的pagehelper插件yml配置
pagehelper:
helperDialect: mysql
reasonable: true
supportMethodsArguments: true
params: count=countSql
pagehelper.reasonable: 分页合理化参数
默认值为false。默认false 时,直接根据参数进行查询 当该参数等于 true 时,pageNum<=0 时会查询第一页, pageNum>pages(即超过总数时),会查询最后一页。 配置helperDialect属性
分页插件会自动检测当前的数据库链接,自动选择合适的分页方式。 取值可为oracle,mysql,mariadb,sqlite,hsqldb,postgresql,db2,sqlserver,informix,h2,sqlserver2012,derby supportMethodsArguments:
支持通过 Mapper 接口参数来传递分页参数,默认值false,分页插件会从查询方法的参数值中,自动根据上面 params 配置的字段中取值,查找到合适的值时就会自动分页。 使用方法可以参考测试代码中的 com.github.pagehelper.test.basic 包下的 ArgumentsMapTest 和 ArgumentsObjTest。 特别注意:使用 SqlServer2012 数据库时,需要手动指定为 sqlserver2012,否则会使用 SqlServer2005 的方式进行分页。
maven引入
com.github.pagehelper
pagehelper
1.4.0
SQL建表测试语句
SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;
-- ----------------------------
-- Table structure for base_category1
-- ----------------------------
DROp TABLE IF EXISTS `base_category1`;
CREATE TABLE `base_category1` (
`id` bigint(0) NOT NULL AUTO_INCREMENT COMMENT '编号',
`name` varchar(10) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '分类名称',
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 18 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '一级分类表' ROW_FORMAT = Compact;
-- ----------------------------
-- Records of base_category1
-- ----------------------------
INSERT INTO `base_category1` VALUES (1, '图书、音像、电子书刊');
INSERT INTO `base_category1` VALUES (2, '手机');
INSERT INTO `base_category1` VALUES (3, '家用电器');
INSERT INTO `base_category1` VALUES (4, '数码');
INSERT INTO `base_category1` VALUES (5, '家居家装');
INSERT INTO `base_category1` VALUES (6, '电脑办公');
INSERT INTO `base_category1` VALUES (7, '厨具');
INSERT INTO `base_category1` VALUES (8, '个护化妆');
INSERT INTO `base_category1` VALUES (9, '服饰内衣');
INSERT INTO `base_category1` VALUES (10, '钟表');
INSERT INTO `base_category1` VALUES (11, '鞋靴');
INSERT INTO `base_category1` VALUES (12, '母婴');
INSERT INTO `base_category1` VALUES (13, '礼品箱包');
INSERT INTO `base_category1` VALUES (14, '食品饮料、保健食品');
INSERT INTO `base_category1` VALUES (15, '珠宝');
INSERT INTO `base_category1` VALUES (16, '汽车用品');
INSERT INTO `base_category1` VALUES (17, '运动健康');
SET FOREIGN_KEY_CHECKS = 1;
application.yml连接数据库配置
spring:
datasource:
driverClassName: com.mysql.jdbc.Driver
url: jdbc:mysql://localhost:3306/base_category1?useUnicode=true&characterEncoding=utf8
#数据库账号密码
username: root
password: 123456
spring:
datasource:
driverClassName: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/base_category1?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf8&useSSL=false&autoReconnect=true&failOverReadOnly=false
#数据库账号密码
username: root
password: 123456
创建IbaseCategory1Service与baseCategory1Mapper接口类
在java文件夹下创建top文件夹,右键再新建interesting子文件夹,在子文件夹下新建service和mapper文件夹 接着创建IbaseCategory1Service与baseCategory1Mapper接口类
public interface IbaseCategory1Service {
PageInfo selectLists(Integer pageNum, Integer pageSize);
}
@Repository
public interface baseCategory1Mapper extends baseMapper {
List selectLists(Integer pageNum, Integer pageSize);
}
创建baseCategory1Mapper.xml
在resources文件夹底下新建mapper文件夹,创建baseCategory1Mapper.xml
select * from `base_category1`
创建baseCategory1ServiceImpl实现类
@Service
public class baseCategory1ServiceImpl implements IbaseCategory1Service{
@Autowired
public baseCategory1Mapper baseCategory1Mapper;
@Override
public PageInfo selectLists(Integer pageNum, Integer pageSize){
PageHelper.startPage(pageNum,pageSize);
List pageInfo = baseCategory1Mapper.selectLists(pageNum, pageSize);
return new PageInfo<>(pageInfo);
};
}
创建CategoryController控制层
@RestController
@RequestMapping("/product")
public class CategoryController {
@Autowired
private IbaseCategory1Service category1Service;
@GetMapping("/getCategory1")
public Result getCategory1(@RequestParam(value="pageNo",defaultValue="1")int pageNo,
@RequestParam(value="pageSize",defaultValue="10")int pageSize){
PageInfo list = category1Service.selectLists(pageNo, pageSize);
//分页查询所有的一级分类
return Result.ok(list);
}
}
配置启动类启动项目即可
@SpringBootApplication
@MapperScan("top.interesting.mapper")
public class ProductApplication {
public static void main(String[] args) {
SpringApplication.run(ProductApplication.class, args);
}
}