分页插件
在MyBatisPlus中集成了分页插件,我们不需要单独的引入,只需要添加对应的配置类
代码语言:javascript复制@Configuration
@MapperScan("com.xxx.mpdemo01.mapper")
public class MyBatisPlusConfig {
/**
* 新的分页插件,一缓和二缓遵循mybatis的规则,
* 需要设置 MybatisConfiguration#useDeprecatedExecutor = false 避免缓存出现问题(该属性会在旧插件移除后一同移除)
*/
@Bean
public MybatisPlusInterceptor mybatisPlusInterceptor() {
MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL));
return interceptor;
}
}
然后就可以测试操作了
代码语言:javascript复制 @Test
void queryPage() {
Page<User> page = new Page<>(1,5);
Page<User> userPage = userMapper.selectPage(page, null);
System.out.println("userPage.getCurrent() = " userPage.getCurrent());
System.out.println("userPage.getSize() = " userPage.getSize());
System.out.println("userPage.getTotal() = " userPage.getTotal());
System.out.println("userPage.getPages() = " userPage.getPages());
System.out.println("userPage.hasPrevious() = " userPage.hasPrevious());
System.out.println("userPage.hasNext() = " userPage.hasNext());
}
代码生成器
添加依赖
代码语言:javascript复制 <dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-generator</artifactId>
<version>3.5.2</version>
</dependency>
<dependency>
<groupId>org.freemarker</groupId>
<artifactId>freemarker</artifactId>
</dependency>
快速生成:
代码语言:javascript复制/**
* 代码生成器
*/
public class MyFastAutoGenerator {
public static void main(String[] args) {
FastAutoGenerator.create("jdbc:mysql://localhost:3306/mp?serverTimezone=UTC&useUnicode=true&characterEncoding=utf-8&useSSL=true"
, "root", "123456")
.globalConfig(builder -> {
builder.author("xxx") // 设置作者
//.enableSwagger() // 开启 swagger 模式
.fileOverride() // 覆盖已生成文件
.outputDir("D://MyBatisPlus"); // 指定输出目录
})
.packageConfig(builder -> {
builder.parent("com.xxx.mp") // 设置父包名
.moduleName("system") // 设置父包模块名
.pathInfo(Collections.singletonMap(OutputFile.xml, "D://")); // 设置mapperXml生成路径
})
.strategyConfig(builder -> {
builder.addInclude("t_user") // 设置需要生成的表名
.addTablePrefix("t_", "c_"); // 设置过滤表前缀
})
.templateEngine(new FreemarkerTemplateEngine()) // 使用Freemarker引擎模板,默认的是Velocity引擎模板
.execute();
}
}