栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

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

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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


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

  • Java
    categories:
  • Java
    cover: https://cover.png
    feature: false

1. POM 依赖


    com.baomidou
    mybatis-plus-boot-starter
    3.5.1



	com.baomidou
	mybatis-plus-generator
	3.5.2



	org.springframework.boot
	spring-boot-starter-freemarker
	2.6.7

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 test() {
        return sysMenuService.list();
    }
}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/854694.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号