前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >MybatisPlus代码生成器

MybatisPlus代码生成器

作者头像
别团等shy哥发育
发布2023-02-25 16:07:41
8430
发布2023-02-25 16:07:41
举报
文章被收录于专栏:全栈开发那些事

MybatisPlus代码生成器

一、简介

AutoGenerator 是 MyBatis-Plus 的代码生成器,通过 AutoGenerator 可以快速生成 Entity、Mapper、Mapper XML、Service、Controller 等各个模块的代码,极大的提升了开发效率。

二、使用教程

2.1 添加依赖

MyBatis-Plus 从 3.0.3 之后移除了代码生成器与模板引擎的默认依赖,需要手动添加相关依赖:

  • 添加代码生成器依赖
代码语言:javascript
复制
<dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>mybatis-plus-generator</artifactId>
    <version>3.4.1</version>
</dependency>
  • 添加 模板引擎 依赖,MyBatis-Plus 支持 Velocity(默认)、Freemarker、Beetl,用户可以选择自己熟悉的模板引擎,如果都不满足您的要求,可以采用自定义模板引擎。

Velocity(默认):

代码语言:javascript
复制
<dependency>
    <groupId>org.apache.velocity</groupId>
    <artifactId>velocity-engine-core</artifactId>
    <version>2.3</version>
</dependency>

Freemarker:

代码语言:javascript
复制
<dependency>
    <groupId>org.freemarker</groupId>
    <artifactId>freemarker</artifactId>
    <version>2.3.31</version>
</dependency>

Beetl:

代码语言:javascript
复制
<dependency>
    <groupId>com.ibeetl</groupId>
    <artifactId>beetl</artifactId>
    <version>3.3.2.RELEASE</version>
</dependency>

注意!如果您选择了非默认引擎,需要在 AutoGenerator 中 设置模板引擎。

代码语言:javascript
复制
AutoGenerator generator = new AutoGenerator();

// set freemarker engine
generator.setTemplateEngine(new FreemarkerTemplateEngine());

// set beetl engine
generator.setTemplateEngine(new BeetlTemplateEngine());

// set custom engine (reference class is your custom engine class)
generator.setTemplateEngine(new CustomTemplateEngine());

// other config
...

2.2 编写配置

2.2.1 全局配置

代码语言:javascript
复制
 //1、全局配置
        GlobalConfig config=new GlobalConfig();
        config.setActiveRecord(true)    //是否支持AR模式
                .setAuthor("xiongtete") //作者
                .setOutputDir(System.getProperty("user.dir") + "/src/main/java")     //user.dir获取到你当前工程的 src 目录路径     //生成路径
                .setFileOverride(true)      //文件覆盖
                .setIdType(IdType.AUTO)  //主键策略
                .setServiceName("%sService")     //设置生成的service接口的名字的首字母是否为I
                .setBaseResultMap(true)
                .setBaseColumnList(true);

2.2.2 数据源配置

代码语言:javascript
复制
 //2、数据源配置
        DataSourceConfig dataSourceConfig=new DataSourceConfig();
        dataSourceConfig.setDbType(DbType.MYSQL)    //设置数据库类型
                        .setDriverName("com.mysql.cj.jdbc.Driver")
                        .setUrl("jdbc:mysql://localhost:3306/mp?&useSSL=false&serverTimezone=UTC&allowPublicKeyRetrieval=true")
                        .setUsername("root")
                        .setPassword("123456");

2.2.3 策略配置

代码语言:javascript
复制
//3、策略配置
        StrategyConfig strategyConfig=new StrategyConfig();
        strategyConfig.setCapitalMode(true) //开启全局大写命名
                        .setNaming(NamingStrategy.underline_to_camel)   //数据库表映射到实体的命名策略
                        .setTablePrefix("tbl_") //表前缀
                        .setInclude("tbl_employee");    //生成的表

2.2.4 包名策略配置

代码语言:javascript
复制
 //4、包名策略配置
        PackageConfig packageConfig=new PackageConfig();
        packageConfig.setParent("com.baomidou.mybatisplus")
                     .setMapper("mapper")
                     .setService("service")
                     .setController("controller")
                     .setEntity("beans");

2.2.5 整合配置

代码语言:javascript
复制
 AutoGenerator generator=new AutoGenerator();
        generator.setGlobalConfig(config)
                .setDataSource(dataSourceConfig)
                .setStrategy(strategyConfig)
                .setPackageInfo(packageConfig);

2.2.6 执行

代码语言:javascript
复制
//6、执行
        generator.execute();

2.2.7 配置的完整代码:

代码语言:javascript
复制
 /**
     * 代码生成  示例代码
     */
    @Test
    public void testGenerator(){
        //1、全局配置
        GlobalConfig config=new GlobalConfig();
        config.setActiveRecord(true)    //是否支持AR模式
                .setAuthor("xiongtete") //作者
                .setOutputDir(System.getProperty("user.dir") + "/src/main/java")     //user.dir获取到你当前工程的 src 目录路径     //生成路径
                .setFileOverride(true)      //文件覆盖
                .setIdType(IdType.AUTO)  //主键策略
                .setServiceName("%sService")     //设置生成的service接口的名字的首字母是否为I
                .setBaseResultMap(true)
                .setBaseColumnList(true);
        //2、数据源配置
        DataSourceConfig dataSourceConfig=new DataSourceConfig();
        dataSourceConfig.setDbType(DbType.MYSQL)    //设置数据库类型
                        .setDriverName("com.mysql.cj.jdbc.Driver")
                        .setUrl("jdbc:mysql://localhost:3306/mp?&useSSL=false&serverTimezone=UTC&allowPublicKeyRetrieval=true")
                        .setUsername("root")
                        .setPassword("123456");

        //3、策略配置
        StrategyConfig strategyConfig=new StrategyConfig();
        strategyConfig.setCapitalMode(true) //开启全局大写命名
                        .setNaming(NamingStrategy.underline_to_camel)   //数据库表映射到实体的命名策略
                        .setTablePrefix("tbl_") //表前缀
                        .setInclude("tbl_employee");    //生成的表

        //4、包名策略配置
        PackageConfig packageConfig=new PackageConfig();
        packageConfig.setParent("com.baomidou.mybatisplus")
                     .setMapper("mapper")
                     .setService("service")
                     .setController("controller")
                     .setEntity("beans");
        //5、整合配置
        AutoGenerator generator=new AutoGenerator();
        generator.setGlobalConfig(config)
                .setDataSource(dataSourceConfig)
                .setStrategy(strategyConfig)
                .setPackageInfo(packageConfig);
        //6、执行
        generator.execute();
    }

执行之后的生成的目录结构:

2.2.8 官方文档地址

官方文档:https://mp.baomidou.com/guide/generator.html#%E4%BD%BF%E7%94%A8%E6%95%99%E7%A8%8B

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-04-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • MybatisPlus代码生成器
  • 一、简介
  • 二、使用教程
    • 2.1 添加依赖
      • 2.2 编写配置
        • 2.2.1 全局配置
        • 2.2.2 数据源配置
        • 2.2.3 策略配置
        • 2.2.4 包名策略配置
        • 2.2.5 整合配置
        • 2.2.6 执行
        • 2.2.7 配置的完整代码:
        • 2.2.8 官方文档地址
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档