mybaits-plush 代码自动生成器的简单应用

首先,先说一下代码自动生成器的作用是什么,就是自动替我们去创建mapper、entity、service、controller...这些我们在项目中要用到的通用性文件。

然后我们在说一下他的配置。

mybaits-plush自动生成器的配置分为

  1. 全局配置    GlobalConfig
  2. 数据源配置    DataBaseConfig
  3. 策略配置    StrateConfig
  4. 包配置    PackageConfig
  5. 自定义配置   InjectionConfig

关于以上的几个配置,官网中都有描述,配置项很多,我们先用基本的配置来生成我们需要的代码

添加所需要的依赖

<dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>mybatis-plus-generator</artifactId>
    <version>3.3.1</version>
</dependency>

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

<dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>mybatis-plus-boot-starter</artifactId>
    <version>3.4.2</version>
</dependency>

这个依赖是因为我们用到了Freemarker 模板引擎,如果用其他的模板引擎,需要更换其他的依赖

<dependency>
    <groupId>org.freemarker</groupId>
    <artifactId>freemarker</artifactId>
    <version>2.3.31</version>
</dependency>
通过构建一个静态方法获取全局配置,避免在main方法中代码显得很乱
public static GlobalConfig getGlobalConfig() {
    return new GlobalConfig()
            .setOutputDir(System.getProperty("user.dir") + "\\src\\main\\java")    // 设置文件的输出路径
            .setOpen(false)                                                        // 设置是否打开输出目录   默认值是true
            .setFileOverride(true)                                                 // 设置生成的文件是否覆盖原来的文件 默认值是false
            .setSwagger2(true)                                                     // 设置是否打开swagger开关
            .setAuthor("admin");                                                   // 设置开发人员名称
}
通过构建一个静态方法获取数据源配置
public static DataSourceConfig getDateSourceConfig() {
    return new DataSourceConfig()
            .setPassword("123456")
            .setUsername("root")
            .setDriverName("com.mysql.cj.jdbc.Driver")
            .setUrl("jdbc:mysql://localhost:3306/bookdb?useSSL=true&useUnicode=true&characterEncoding=UTF-8&&serverTimezone=Asia/Shanghai")
            .setDbType(DbType.MYSQL);
}
通过构建一个静态方法获得包配置
public static PackageConfig getPackageConfig() {
    return new PackageConfig()
            .setParent("com.xj.demo")                            
            .setEntity("entity")
            .setServiceImpl("service.impl")
            .setService("service")
            .setMapper("mapper")
            .setController("controller");
}

下边这是packageConfig的源码属性,如果我们不指定父包名parent ,生成的代码默认包名就会是com.baomidou

同时我们也能看到,在PackageConfig的属性中默认给到的service、controller等包的包名与我们上边定义的包名相同,

那我们上边就不需要再重复定义了

public class PackageConfig {
    private String parent = "com.baomidou";
    private String moduleName = null;
    private String entity = "entity";
    private String service = "service";
    private String serviceImpl = "service.impl";
    private String mapper = "mapper";
    private String xml = "mapper.xml";
    private String controller = "controller";
通过构建一个静态方法获取策略配置
public static StrategyConfig getStrategyConfig() {
    return new StrategyConfig()
            .setNaming(NamingStrategy.underline_to_camel)             // 设置当表名命名方式为驼峰命名法
            .setColumnNaming(NamingStrategy.underline_to_camel)       // 设置字段命名方式为驼峰命名法
            .setInclude("book_info", "user_info")                     // 设置需要自动生成代码的实体表名称
            .setRestControllerStyle(true);                            //  设置生成@RestController 控制器
}
通过main方法中定义的代码自动生成器,将我们上边定义的各项配置加载到代码生成器中,执行就会生成我们所需要的代码
public static void main(String[] args) {
    AutoGenerator autoGenerator = new AutoGenerator();             // 创建代码生成器
    autoGenerator
            .setTemplateEngine(new FreemarkerTemplateEngine())     // 使用Freemarker的模板引擎 ,如果不指定 就使用默认的Velocity 模板引擎
            .setStrategy(getStrategyConfig())
            .setDataSource(getDateSourceConfig())
            .setPackageInfo(getPackageConfig())
            .setGlobalConfig(getGlobalConfig());
    autoGenerator.execute();                                        // 通过以上的配置运行代码生成器
}

这就是上边代码自动生成的目录和文件

虽然我们通过代码生成器可以简单的生成代码了,但是提出了几个问题

1、一般的习惯,mapper.xml应该放置在resources 目录下,但是 自动生成到了mapper的目录下边

2、在使用Pojo类的时候,我们会区分Vo、 entity、dto 但是 代码生成器并没有提供直接设置 vo 和 dto 的位置

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

学习历程记录

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值