MyBatis-Plus 使用配置及代码生成

MyBatis-Plus 使用配置及代码生成,第1张


title: MyBatis-Plus 使用配置及代码生成
date: 2022-05-03 12:47:04
tags:

  • Java
    categories:
  • Java
    cover: http://www.kaotop.com/file/tupian/20220506/cover.png
    feature: false

1. POM 依赖

<dependency>
    <groupId>com.baomidougroupId>
    <artifactId>mybatis-plus-boot-starterartifactId>
    <version>3.5.1version>
dependency>

<dependency>
	<groupId>com.baomidougroupId>
	<artifactId>mybatis-plus-generatorartifactId>
	<version>3.5.2version>
dependency>

<dependency>
	<groupId>org.springframework.bootgroupId>
	<artifactId>spring-boot-starter-freemarkerartifactId>
	<version>2.6.7version>
dependency>
2. YML 配置
mybatis-plus:
  mapper-locations: classpath*:/mapper/**Mapper.xml
  configuration:
    local-cache-scope: statement
3. MybatisPlusConfig 配置类
@Configuration
@MapperScan("fan.**.dao")
public class MybatisPlusConfig {
    public MybatisPlusInterceptor mybatisPlusInterceptor() {
        MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
        // 添加分页插件
        interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL));
        // 添加全表更新删除插件
        interceptor.addInnerInterceptor(new BlockAttackInnerInterceptor());
        return interceptor;
    }
}
4. CodeGenerator 代码生成
  1. 获取项目数据库所对应表和字段的信息(information_schema 数据库的 TABLES 和 COLUMNS)

    # 获取表
    SELECT *
    FROM information_schema. TABLES
    WHERE TABLE_SCHEMA = (SELECT DATABASE());
    # 获取字段
    SELECT *
    FROM information_schema. COLUMNS
    WHERE TABLE_SCHEMA = (SELECT DATABASE()) AND TABLE_NAME = "sys_user";
    
  2. 使用生成器的模板新建一个 freemarker(模板引擎)的页面模板 - SysUser.java.ftl - ${baseEntity}

  3. 提供相关需要进行渲染的动态数据 - BaseEntity、表字段、注释、baseEntity=SuperEntity

  4. 使用 freemarker 模板引擎进行渲染 - SysUser.java

public class CodeGenerator {

    private static final DataSourceConfig.Builder DATA_SOURCE_CONFIG = new DataSourceConfig
            .Builder("jdbc:mysql://127.0.0.1:3306/enterprise_hrms?connectTimeout=5000&socketTimeout=10000&autoReconnect=true&failOverReadOnly=false&useSSL=false&useUnicode=true&characterEncoding=UTF-8&serverTimezone=GMT%2B8", "root", "fan223");

    public static void main(String[] args) {
        FastAutoGenerator.create(DATA_SOURCE_CONFIG)
                // 全局配置
                .globalConfig((scanner, builder) -> builder.author(scanner.apply("请输入作者名称")).enableSwagger())
                // 包配置
                .packageConfig((scanner, builder) -> builder.parent(scanner.apply("请输入包名")))
                // 策略配置
                .strategyConfig((scanner, builder) -> builder.addInclude(scanner.apply("请输入表名,多个表名用,隔开")))
                // 模板引擎配置,默认 Velocity 可选模板引擎 Beetl 或 Freemarker
                .templateEngine(new FreemarkerTemplateEngine())
                .execute();
    }
}

详细配置信息:https://baomidou.com/pages/981406/

生成如下:

5. 测试

Service 继承了 IService 接口,同时 Mapper 继承了 BaseMapper,可以直接使用 Mybatis-Plus 封装的方法

@RestController
public class SysMenuController {

    @Resource
    private SysMenuService sysMenuService;

    @GetMapping("/test")
    public List<SysMenu> test() {
        return sysMenuService.list();
    }
}

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/langs/801843.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-07
下一篇2022-05-07

发表评论

登录后才能评论

评论列表(0条)

    保存