MyBatisPlus:分页、代码生成

2022-11-30 21:45:47 浏览数 (1)

分页插件

在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();
​
    }
}
​
​

0 人点赞