Mybatis-Plus代码生成器的使用

张国伟  金牌会员 | 2023-8-3 18:24:16 | 来自手机 | 显示全部楼层 | 阅读模式
打印 上一主题 下一主题

主题 850|帖子 850|积分 2550

通常我们在做项目的时候,要手动搭建项目的结构,如controller,service,mapper,entity,是不是很麻烦,特别是数据库表特别多时,现在介绍一下使用MybatisPlus时怎么自动生成这些代码。

  • 首先要在项目的pom.xml里引入必要的依赖,如下:
  1. <dependency>
  2.     <groupId>com.baomidou</groupId>
  3.     <artifactId>mybatis-plus-boot-starter</artifactId>
  4.     <version>3.5.3.1</version>
  5. </dependency>
  6. <dependency>
  7.     <groupId>com.mysql</groupId>
  8.     <artifactId>mysql-connector-j</artifactId>
  9.     <scope>runtime</scope>
  10. </dependency>
  11. <dependency>
  12.     <groupId>com.alibaba</groupId>
  13.     <artifactId>druid</artifactId>
  14.     <version>1.2.1</version>
  15. </dependency>
  16. <dependency>
  17.     <groupId>org.projectlombok</groupId>
  18.     <artifactId>lombok</artifactId>
  19.     <optional>true</optional>
  20. </dependency>
  21. <dependency>
  22.     <groupId>com.baomidou</groupId>
  23.     <artifactId>mybatis-plus-generator</artifactId>
  24.     <version>3.4.1</version>
  25. </dependency>
  26. <dependency>
  27.     <groupId>org.apache.velocity</groupId>
  28.     <artifactId>velocity-engine-core</artifactId>
  29.     <version>2.3</version>
  30. </dependency>
复制代码

  • 新建一个代码生成器类如下:
  1. package com.example;
  2. import com.baomidou.mybatisplus.annotation.IdType;
  3. import com.baomidou.mybatisplus.generator.AutoGenerator;
  4. import com.baomidou.mybatisplus.generator.config.DataSourceConfig;
  5. import com.baomidou.mybatisplus.generator.config.GlobalConfig;
  6. import com.baomidou.mybatisplus.generator.config.PackageConfig;
  7. import com.baomidou.mybatisplus.generator.config.StrategyConfig;
  8. public class CodeGenerator {
  9.     public static void main(String[] args) {
  10.         //1.获取代码生成器的对象
  11.         AutoGenerator autoGenerator = new AutoGenerator();
  12.         //设置数据库相关配置
  13.         DataSourceConfig dataSource = new DataSourceConfig();
  14.         dataSource.setDriverName("com.mysql.cj.jdbc.Driver");
  15.         dataSource.setUrl("jdbc:mysql://localhost:3306/db?serverTimezone=UTC");
  16.         dataSource.setUsername("root");
  17.         dataSource.setPassword("******");
  18.         autoGenerator.setDataSource(dataSource);
  19.         //设置全局配置
  20.         GlobalConfig globalConfig = new GlobalConfig();
  21.         globalConfig.setOutputDir("D:\\codes\\java\\demo\\spring\\projectname\\src\\main\\java");    //设置代码生成位置
  22.         globalConfig.setOpen(false);    //设置生成完毕后是否打开生成代码所在的目录
  23.         globalConfig.setAuthor("minqilaing");    //设置作者
  24.         globalConfig.setFileOverride(true);     //设置是否覆盖原始生成的文件
  25.         globalConfig.setMapperName("%sMapper");    //设置数据层接口名,%s为占位符,指代模块名称
  26.         globalConfig.setIdType(IdType.ASSIGN_ID);   //设置Id生成策略
  27.         autoGenerator.setGlobalConfig(globalConfig);
  28.         //设置包名相关配置
  29.         PackageConfig packageInfo = new PackageConfig();
  30.         packageInfo.setParent("com.aaa");   //设置生成的包名,与代码所在位置不冲突,二者叠加组成完整路径
  31.         packageInfo.setEntity("entity");    //设置实体类包名
  32.         packageInfo.setMapper("mapper");   //设置数据层包名
  33.         autoGenerator.setPackageInfo(packageInfo);
  34.         //策略设置
  35.         StrategyConfig strategyConfig = new StrategyConfig();
  36.         strategyConfig.setInclude("book");  //设置当前参与生成的表名,参数为可变参数
  37. //        strategyConfig.setTablePrefix("tbl_");  //设置数据库表的前缀名称,模块名 = 数据库表名 - 前缀名  例如: User = tbl_user - tbl_
  38.         strategyConfig.setRestControllerStyle(true);    //设置是否启用Rest风格
  39.         strategyConfig.setVersionFieldName("version");  //设置乐观锁字段名
  40.         strategyConfig.setLogicDeleteFieldName("deleted");  //设置逻辑删除字段名
  41.         strategyConfig.setEntityLombokModel(true);  //设置是否启用lombok
  42.         autoGenerator.setStrategy(strategyConfig);
  43.         //2.执行生成操作
  44.         autoGenerator.execute();
  45.     }
  46. }
复制代码

  • 执行如上代码就会生成了,示例如下:


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

张国伟

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表