Springboot + MyBatis Plus自动生成代码工具类,简单好用。

25 篇文章 1 订阅
3 篇文章 0 订阅

想要的效果:

一键生成数据库表对应的Controller、Entity、Service、Mapper、Mapper.xml

数据库表字段如有加备注会自动加到Entity类中,所以建议表都加上备注。

前置依赖:

数据库配置:

spring.datasource.name=mysql
spring.datasource.driver-class-name=com.mysql.jdbc.Driver

pom.xml依赖:

<dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.42</version>
        </dependency>

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

        <dependency>
            <groupId>org.apache.velocity</groupId>
            <artifactId>velocity-engine-core</artifactId>
            <version>2.0</version>
        </dependency>

1、创建一个MpHelper工具类,用来配置自动生成代码参数

2、右键执行main方法执行生成代码

执行参数:
1.输出文件的路径
2.数据库用户名
3.数据库密码
4.该代码所属的包名
5.表名称,多个表用逗号隔开。

3、MpHelper工具类代码如下:


import com.baomidou.mybatisplus.generator.config.converts.MySqlTypeConvert;
import com.baomidou.mybatisplus.generator.config.rules.DbColumnType;
import com.baomidou.mybatisplus.generator.config.rules.DbType;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

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.rules.NamingStrategy;
import org.springframework.util.StringUtils;

public class MpHelper {
 private static final Logger logger = LoggerFactory.getLogger(MpHelper.class);
 private String outPutDir = "D://";
 private String dbUserName;
 private String dbPassword;
 private String dbUrl;
 private String moduleName = "test";
 private boolean fileOverride = true;
 private String[] includeTable;
 private String[] excludeTable;

 public void setFileOverride(boolean fileOverride) {
     this.fileOverride = fileOverride;
 }

 public void setIncludeTable(String[] includeTable) {
     this.includeTable = includeTable;
 }

 public void setExcludeTable(String[] excludeTable) {
     this.excludeTable = excludeTable;
 }

    /**
     * 引用用参数类
     * @param outPutDir 生成代码的位置
     * @param dbUserName 数据库用户名
     * @param dbPassword 数据库密码
     * @param dbUrl 数据库URL
     * @param moduleName 生成代码的所属包的名称
     */
 public MpHelper(String outPutDir, String dbUserName, String dbPassword, String dbUrl, String moduleName ) {
     this.outPutDir = outPutDir;
     this.dbUserName = dbUserName;
     this.dbPassword = dbPassword;
     this.dbUrl = dbUrl;
     this.moduleName = moduleName;
 }

 public void execute() {
     if (StringUtils.isEmpty(this.dbUserName)) {
         logger.error("数据库连接信息不能为空");
     } else {
         AutoGenerator mpg = new AutoGenerator();
         GlobalConfig gc = new GlobalConfig();
         gc.setOutputDir(this.outPutDir);
         gc.setFileOverride(true);
         gc.setActiveRecord(true);
         gc.setEnableCache(false);
         gc.setBaseResultMap(false);
         gc.setBaseColumnList(false);
         gc.setAuthor("jack");
         mpg.setGlobalConfig(gc);
         DataSourceConfig dsc = new DataSourceConfig();
         dsc.setDbType(DbType.MYSQL);
         dsc.setTypeConvert(new MySqlTypeConvert() {
             public DbColumnType processTypeConvert(String fieldType) {
                 return super.processTypeConvert(fieldType);
             }
         });
//         dsc.setDriverName("com.mysql.cj.jdbc.Driver");  //mysql 8.0以上版本 需要用这个驱动
         dsc.setDriverName("com.mysql.jdbc.Driver");
         dsc.setUsername(this.dbUserName);
         dsc.setPassword(this.dbPassword);
         dsc.setUrl(this.dbUrl);
         mpg.setDataSource(dsc);
         StrategyConfig strategy = new StrategyConfig();
         strategy.setNaming(NamingStrategy.underline_to_camel);
         strategy.setInclude(this.includeTable);
         strategy.setExclude(this.excludeTable);
         mpg.setStrategy(strategy);
         PackageConfig pc = new PackageConfig();
         pc.setParent("com.test");
         pc.setModuleName(this.moduleName);
         mpg.setPackageInfo(pc);
         mpg.execute();
     }

    }

    /**
     * 测试
     * @param args
     */
    public static void main(String[] args) {
        MpHelper mh = new MpHelper("D:\\workspace\\test\\src\\main\\java",
                "username",
                "password",
                "jdbc:mysql://192.192.192.192:3306/demo?useSSL=false",
                "test");
        mh.setIncludeTable(new String []{"t_table1","t_table2"});// 需要自动生成的table 列表
        mh.execute();
    }
}

生成效果:

生成的代码结构

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值