mybatis plus 动态创建表和字段_mybatis-plus maven代码生成器

前言

初次接触mybatis plus是17年末,当时的版本是2.0+,在那之前公司使用的mybatis框架是tk.mybatis,也是衍生于mybatis的一款扩展框架。当时拿mybatis plus与tk相比虽然觉得plus功能已经足够强大了(如逻辑删除、sql打印插件、分页插件、雪花算法生成id等),但plus到了3.0之后新增的函数式编程才让我觉得开发者的体验质变版的提升,不会再出现字段输错的问题(注意换行,观感更强),具体可到官网网站查看,国人开源,文档也很详细完善,就不在此介绍了。

tk.mybatis与mybatis的代码生成器相同,都是通过maven插件+配置文件或IDE插件+配置文件生成,而mybatis-plus则需新建一个生成项目去生成,不同数据库的生成都要重新配置,对于我而言这2种都十分麻烦,于是开始从对mybatis-plus的生成源码进行更改后转成了将生成源码更改并集成为maven插件。

生成流程

虽然市面上也有不少生成器框架,连前端vue页面都生成了的都有,但习惯了前后端分离的我只需要后端页面(没有艺术感的我对样式敬而远之),且还想生成器可以根据自己的扩展模板(如常量类、Manager层、VO或DTO)去生成文件。后文介绍的框架并不一定适用于大家的需求,但大家可以了解下生成的流程,因为万变不离其宗,思想总有相同[doge]:

1.设定各层(Entity、Constant、DAO、Service等)模板文件

2.JDBC连接数据库获取相关表信息并转成相应类(如Table存储表信息,TableField存储字段信息)

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MyBatis-Plus 的代码生成器是一个非常方便的工具,可以帮助我们快速生成 MyBatis 相关的 DAO、Mapper、Entity、Service、Controller 等代码。具体使用方法如下: 1. 引入 MyBatis-Plus 的代码生成器依赖 在 Maven 中添加以下依赖: ```xml <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-generator</artifactId> <version>${mybatis-plus.version}</version> </dependency> ``` 2. 配置代码生成器 在项目的配置文件中,添加 MyBatis-Plus 的代码生成器配置项: ```yaml mybatis-plus: # 配置代码生成器 generator: # 配置数据库相关信息 database: driver-class-name: com.mysql.jdbc.Driver url: jdbc:mysql://localhost:3306/mybatis_plus?serverTimezone=UTC username: root password: 管理员密码 # 配置全局策略 global-config: # 是否开启AR模式 active-record: true # 是否在mapper.xml中生成查询结果Map元素 enable-result-map: true # 是否在mapper.xml中生成基础列字段元素 enable-column-list: true # 自定义文件命名,注意 %s 会自动填充实体属性 entity-name: %sDO # 配置包信息 package-info: # 父包名 parent: com.example.mybatisplus.generator # 实体类包名 entity: entity # mapper接口层包名 mapper: dao # service层包名 service: service # service实现类包名 service-impl: service.impl # controller包名 controller: controller ``` 3. 运行代码生成器 在项目中创建一个 `CodeGenerator` 类,编写如下代码: ```java public class CodeGenerator { public static void main(String[] args) { AutoGenerator generator = new AutoGenerator(); generator.setGlobalConfig(config()); generator.setDataSource(dataSourceConfig()); generator.setPackageInfo(packageConfig()); generator.setStrategy(strategyConfig()); generator.setTemplate(templateConfig()); generator.execute(); } private static GlobalConfig config() { GlobalConfig config = new GlobalConfig(); // 配置输出目录 config.setOutputDir(System.getProperty("user.dir") + "/src/main/java"); // 是否覆盖已有文件 config.setFileOverride(true); // 是否开启 Swagger2 注解 config.setSwagger2(true); // 开启 AR 模式 config.setActiveRecord(true); // 配置基础字段生成 config.setBaseColumnList(true); // 配置通用 Mapper 的 baseResultMap config.setBaseResultMap(true); // 配置是否生成 XML 的注释 config.setXmlName("%sMapper"); config.setAuthor("作者名"); config.setOpen(false); return config; } private static DataSourceConfig dataSourceConfig() { DataSourceConfig config = new DataSourceConfig(); config.setUrl("jdbc:mysql://localhost:3306/mybatis_plus?serverTimezone=UTC"); config.setDriverName("com.mysql.jdbc.Driver"); config.setUsername("root"); config.setPassword("管理员密码"); return config; } private static PackageConfig packageConfig() { PackageConfig config = new PackageConfig(); config.setParent("com.example.mybatisplus.generator"); config.setEntity("entity"); config.setMapper("dao"); config.setService("service"); config.setServiceImpl("service.impl"); config.setController("controller"); return config; } private static StrategyConfig strategyConfig() { StrategyConfig config = new StrategyConfig(); // 配置名的生成策略 config.setNaming(NamingStrategy.underline_to_camel); config.setColumnNaming(NamingStrategy.underline_to_camel); // 设置需要生成的名 config.setInclude("user_info"); // 配置Lombok属性 config.setEntityLombokModel(true); config.setRestControllerStyle(true); // 配置是否生成注解@TableField config.setEntityTableFieldAnnotationEnable(true); // 配置通用 Mapper config.setEntityBooleanColumnRemoveIsPrefix(true); config.setRestControllerStyle(true); config.setEntitySerialVersionUID(true); config.setEntityBuilderModel(true); config.setEntityColumnConstant(true); return config; } private static TemplateConfig templateConfig() { TemplateConfig config = new TemplateConfig(); // 配置自定义模板,不配置就用默认的 return config; } } ``` 在 `main` 方法中设置好配置信息,并调用 `execute` 方法执行代码生成器即可。 4. 查看生成的代码 代码生成器会在程序运行的当前目录下生成生成的代码。在 IDEA 中可以通过 `Project` 窗口中的 `src/main/java` 目录打开生成代码目录,可以看到生成的 DAO、Mapper、Entity、Service、Controller 等代码

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值