mybatis plus自动生成业务代码(controller,service,entity,mapper)

注意: 最终生成的文件在你运行测试类所在项目根目录下的src/main/java路径下

//构建一个maven项目,添加以下依赖即可
<!--mybatis-plus-->
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>3.0.5</version>
        </dependency>
        <!-- velocity 模板引擎, Mybatis Plus 代码生成器需要,还有其他的模板引擎,具体参照官网,注意网络
        环境,如果maven下载jar包失败,会导致自动生成代码时报错,ClassNotFound -->
        <dependency>
            <groupId>org.apache.velocity</groupId>
            <artifactId>velocity-engine-core</artifactId>
            <version>2.0</version>
        </dependency>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <!--<version>5.1.47</version>-->
            <version>8.0.18</version>
        </dependency>
        <!--swagger-->
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger2</artifactId>
            <version>2.7.0</version>
        </dependency>
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger-ui</artifactId>
            <version>2.7.0</version>
        </dependency> <!--lombok用来简化实体类:需要安装lombok插件-->
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
        </dependency>

自动生成代码类

import com.baomidou.mybatisplus.annotation.DbType;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.generator.AutoGenerator;
import com.baomidou.mybatisplus.generator.config.DataSourceConfig;
import com.baomidou.mybatisplus.generator.config.GlobalConfig;
import com.baomidou.mybatisplus.generator.config.PackageConfig;
import com.baomidou.mybatisplus.generator.config.StrategyConfig;
import com.baomidou.mybatisplus.generator.config.po.TableFill;
import com.baomidou.mybatisplus.generator.config.rules.DateType;
import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;

import java.util.ArrayList;

public class TestGenerator {
 public static void main(String[] args) {
  // 模块名 product
  String moduleName = "product";

  // 1.创建代码生成器
  AutoGenerator mpg = new AutoGenerator();

  // 2. 全局配置
  GlobalConfig gc = new GlobalConfig();
  //获取项目目录
  String projectPath = System.getProperty("user.dir");
  gc.setOutputDir(projectPath + "/src/main/java");
  // 文档注释 作者名
  gc.setAuthor("Mr.ZhangSan");
  // 是否打开资源管理器
  gc.setOpen(false);

  // 重新生成文件的时候是否覆盖
  gc.setFileOverride(true);
  // 去掉接口的首字母I
  gc.setServiceImplName("%sService");
  // 主键策略
  gc.setIdType(IdType.AUTO);
  // 定义生成的实体类中的日期类型
  gc.setDateType(DateType.ONLY_DATE);
  // 实体属性 Swagger2 注解
  gc.setSwagger2(true);

  mpg.setGlobalConfig(gc);
  
  // 3、 数据源配置
  DataSourceConfig dsc = new DataSourceConfig();
  dsc.setUrl("jdbc:mysql://localhost:3366/yckj_db?autoReconnect=true&useSSL=false&characterEncoding=utf-8&serverTimezone=Asia/Shanghai&allowMultiQueries=true");
  // mysql 驱动为5.x时的driverName
  // dsc.setDriverName("com.mysql.jdbc.Driver");
  // mysql 驱动为8.x时的driverName
  dsc.setDriverName("com.mysql.cj.jdbc.Driver");
  dsc.setUsername("root");
  dsc.setPassword("123456");
  // 设置数据库类型(可选) 可以根据驱动自动推断
  dsc.setDbType(DbType.MYSQL);

  mpg.setDataSource(dsc);

  // 4、包配置
  PackageConfig pc = new PackageConfig();
  //模块名 :com.test.product
  pc.setModuleName(moduleName);
  pc.setParent("com.test");
  // 最终的包名称  com.test.product.controller,其他类似
  pc.setController("controller");
  pc.setMapper("mapper");
  pc.setService("service");
  pc.setEntity("entity");

  mpg.setPackageInfo(pc);

  //5、 策略配置
  StrategyConfig strategy = new StrategyConfig();
  //设置要映射的表名
  strategy.setInclude("t_yckj_\\w*");
  // 数据库表映射到实体类的命名策略
  strategy.setNaming(NamingStrategy.underline_to_camel);
  //代表前缀不生成
  strategy.setTablePrefix("t_yckj_");
  //链式编程
  strategy.setEntityLombokModel(true);
  // 数据库列映射到实体类的命名策略
  strategy.setColumnNaming(NamingStrategy.underline_to_camel);
  //逻辑删除字段
  strategy.setLogicDeleteFieldName("deleted");
  //去掉布尔值的 is_ 前缀
  strategy.setEntityBooleanColumnRemoveIsPrefix(true);

  // 自动填充,策略
  TableFill gmtCreate = new TableFill("create_time", FieldFill.INSERT);
  TableFill gmtModified = new TableFill("update_time", FieldFill.INSERT_UPDATE);
  ArrayList<TableFill> tableFills = new ArrayList<>();
  tableFills.add(gmtCreate);
  tableFills.add(gmtModified);

  strategy.setTableFillList(tableFills);

  // 乐观锁
  strategy.setVersionFieldName("version");
  // restful api风格
  strategy.setRestControllerStyle(true);
  // URL中驼峰转连字符  addProduct add-product
  strategy.setControllerMappingHyphenStyle(true);

  mpg.setStrategy(strategy);

  // 执行代码生成器
  mpg.execute();
 }
}

在这里插入图片描述

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
如何使用? 很高兴为您解答这个问题。为了使用MyBatis-Plus自动生成代码模板Controller,您需要遵循以下步骤: 1. 安装MyBatis-Plus插件。您可以在Maven中添加以下代码来添加MyBatis-Plus依赖项: ```xml <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.4.1</version> </dependency> ``` 2. 根据您的需要配置MyBatis-Plus。您可以在application.properties文件中添加以下配置: ```properties # 数据库连接 spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver spring.datasource.url=jdbc:mysql://your-database-url:3306/your-database-name?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=UTC spring.datasource.username=your-database-username spring.datasource.password=your-database-password # MyBatis-Plus配置 mybatis-plus.mapper-locations=classpath:mapper/*.xml mybatis-plus.type-aliases-package=com.example.demo.entity ``` 3. 在您的实体类中添加需要映射的数据库表。对于每个表,需要创建一个Java类,用于映射表中的数据。您可以使用MyBatis-Plus提供的注解来配置主键和字段的映射: ```java @Data @TableName("user") // 表名 public class User { @TableId(value = "id", type = IdType.AUTO) // 主键 private Long id; @TableField("name") // 字段 private String name; // 省略其他字段 } ``` 4. 使用MyBatis-Plus的代码生成器生成代码MyBatis-Plus提供了一个代码生成器,该生成器可以根据您的实体类和数据库自动生成代码。您可以使用以下命令启动代码生成器: ```java import com.baomidou.mybatisplus.generator.AutoGenerator; public class CodeGenerator { public static void main(String[] args) { AutoGenerator mpg = new AutoGenerator(); // 定义包名和文件路径 // ... // 配置数据源 // ... // 配置生成策略 // ... // 配置模板 // ... mpg.execute(); } } ``` 5. 完成后,您将在指定的文件夹中看到生成的代码,包括实体类、Mapper接口、XML文件和Service类。 希望这能帮到您!如果您有任何其他问题,请随时问我。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值