分页功能
配置和依赖
1 2 3 4 5 6 7 8 9 10
| spring: datasource: driver-class-name: com.mysql.jdbc.Driver password: wqeq type: com.alibaba.druid.pool.DruidDataSource url: jdbc:mysql://localhost:3306/test08?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai username: root mybatis-plus: configuration: log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
|
注意:org.apache.ibatis.logging.stdout.StdOutImpl 是加入日志功能,可以返回sql语句供我们查看
maven依赖:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
| <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.4.0</version> </dependency> <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-generator</artifactId> <version>3.4.0</version> </dependency>
<dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.27</version> </dependency>
<dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId> <version>1.1.7</version> </dependency> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.18.0</version> </dependency>
|
数据库和实体类
数据库:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| SET FOREIGN_KEY_CHECKS=0;
DROP TABLE IF EXISTS `user`; CREATE TABLE `user` ( `id` bigint(20) NOT NULL, `name` varchar(30) DEFAULT 'null', `age` varchar(50) DEFAULT 'null', `email` varchar(50) DEFAULT 'null', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
INSERT INTO `user` VALUES ('1', 'jone', '18', '1'); INSERT INTO `user` VALUES ('2', 'jack', '20', '2'); INSERT INTO `user` VALUES ('3', 'TOM', '28', '3'); INSERT INTO `user` VALUES ('4', 'SANDY', '21', '4'); INSERT INTO `user` VALUES ('5', 'BILLIE', '24', '5');
|
实体类:
1 2 3 4 5 6 7 8 9 10 11 12
| package com.lcdzzz.fenye.pojo;
import lombok.*;
@Data public class User { private Long id; private String name; private Integer age; private String email;
}
|
使用了lombok简化了实体类的编写
实现
config包下的MybatisPlusConfig
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| @Configuration @MapperScan("com.lcdzzz.fenye.mapper") public class MybatisPlusConfig {
@Bean public MybatisPlusInterceptor MybatisPlusInterceptor() { MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor(); interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL)); return interceptor; } }
|
mapper层UserMapper
1 2 3
| public interface UserMapper extends BaseMapper<User> {
}
|
测试
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| @SpringBootTest public class MyBatisPlusPluginsTest { @Autowired private UserMapper userMapper;
@Test public void testPage(){ Page<User> page = new Page<>(2,3); userMapper.selectPage(page,null); System.out.println(page.getRecords()); System.out.println(page.getTotal()); System.out.println(page.getPages()); System.out.println(page.hasNext()); System.out.println(page.hasPrevious());
} }
|
代码生成器
依赖
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
| <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> </dependency>
<dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <scope>runtime</scope> </dependency>
<dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-generator</artifactId> <version>3.5.1</version> </dependency> <dependency> <groupId>org.freemarker</groupId> <artifactId>freemarker</artifactId> <version>2.3.31</version> </dependency>
<dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.5.1</version> </dependency>
|
实现
直接用test类
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39
| package com.example.demo;
import com.baomidou.mybatisplus.generator.FastAutoGenerator; import com.baomidou.mybatisplus.generator.config.OutputFile; import com.baomidou.mybatisplus.generator.engine.FreemarkerTemplateEngine;
import java.util.Collections;
public class FastAutoGeneratorTest {
public static void main(String[] args) { FastAutoGenerator.create("jdbc:mysql://127.0.0.1:3306/cec_equipment_tracking_system?characterEncoding=utf-8&userSSL=false", "root", "wqeq") .globalConfig(builder -> { builder.author("lcdzzz") .fileOverride() .outputDir("D://mybatis_plus"); }) .packageConfig(builder -> { builder.parent("com.lcdzzz") .moduleName("mybatisplus") .pathInfo(Collections.singletonMap(OutputFile.mapperXml, "D://mybatis_plus")); }) .strategyConfig(builder -> { builder.addInclude("deliver") .addInclude("equipment") .addInclude("project") .addInclude("quality") .addTablePrefix("t_", "c_"); }) .templateEngine(new FreemarkerTemplateEngine()) .execute(); }
}
|
代码生成器(24)
依赖
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
| <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>2.2.2</version> </dependency> <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-generator</artifactId> <version>3.5.2</version> </dependency> <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.5.1</version> </dependency>
<dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <scope>runtime</scope> </dependency> <dependency> <groupId>org.freemarker</groupId> <artifactId>freemarker</artifactId> <version>2.3.28</version> <scope>compile</scope> </dependency>
|
实现
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
| package io.github.lcdzzz;
import com.baomidou.mybatisplus.generator.FastAutoGenerator; import com.baomidou.mybatisplus.generator.config.OutputFile; import com.baomidou.mybatisplus.generator.config.rules.DbColumnType; import com.baomidou.mybatisplus.generator.engine.FreemarkerTemplateEngine; import org.junit.jupiter.api.Test; import org.springframework.boot.test.context.SpringBootTest;
import java.util.Collections;
@SpringBootTest class DataScopeApplicationTests {
@Test void contextLoads() { FastAutoGenerator.create("jdbc:mysql://127.0.0.1:3306/test06?characterEncoding=utf-8&userSSL=false", "root", "wqeq") .globalConfig(builder -> { builder.author("lcdzzz") .fileOverride() .outputDir("D://2024tienchinStudy//data_scope//src//main//java"); }) .packageConfig(builder -> { builder.parent("io.github.lcdzzz")
.pathInfo(Collections.singletonMap(OutputFile.xml, "D://2024tienchinStudy//data_scope//src//main//resources//mapper")); }) .strategyConfig(builder -> { builder.addInclude("sys_dept","sys_role","sys_user") .addTablePrefix("sys_"); }) .templateEngine(new FreemarkerTemplateEngine()) .execute(); }
}
|