Mybatis Plus 3.x 自动生成代码

自动生成代码

把心思放在写业务逻辑上,杜绝不必要的重复动作
第一步 导入Mybatis_plus对应的jar包

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

第二步
填写对应配置

  • 全局配置
    配置自定义生成的Order,Controller,Service,ServiceImpl,Mapper,XML的名字以及配置是否开启Swagger2的支持等等
  • 数据源配置
  • 包配置
    配置对应的模块名以及要生成的代码所在的包名
  • 策略配置
    配置要生成的代码的一些策略,比如表明是否要驼峰命名,是否启用Lombok和REST风格以及各个类对应的父类及父接口等(此功能挺其强大,配置较多,推荐去看源码)
package pro.nbbt.admin.codeGenerator;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.core.exceptions.MybatisPlusException;
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
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 java.util.Scanner;

/**
* @author luohuiqi
* 2019年1月2日
* 控制台输入相应模块以及实体,Controller,service等名称,自动生成代码
*/
public class CodeGenerator {

   /**
    * <p>
    * 读取控制台内容
    * </p>
    */
   public static String scanner(String tip) {
       Scanner scanner = new Scanner(System.in);
       StringBuilder help = new StringBuilder();
       help.append("帅哥,请输入一下你的" + tip + ":");
       System.out.println(help.toString());
       if (scanner.hasNext()) {
           String ipt = scanner.next();
           if (StringUtils.isNotEmpty(ipt)) {
               return ipt;
           }
       }
       throw new MybatisPlusException("请输入正确的" + tip + "!");
   }

   public static void main(String[] args) {
       // 代码生成器
       AutoGenerator mpg = new AutoGenerator();

       // 全局配置
       GlobalConfig gc = new GlobalConfig();
       String projectPath = System.getProperty("user.dir");
       gc.setOutputDir(projectPath + "/src/main/java");
       gc.setAuthor("luohuiqi");
       gc.setOpen(false);
       gc.setSwagger2(true);
       gc.setBaseResultMap(true);
       gc.setIdType(IdType.AUTO);

       gc.setEntityName(scanner("实体类名"));
       gc.setControllerName(scanner("Controlller名"));
       gc.setServiceName(scanner("Service名"));
       gc.setServiceImplName(scanner("ServiceImpl名"));
       gc.setMapperName(scanner("Mapper名"));
       gc.setXmlName(scanner("XML名"));
       mpg.setGlobalConfig(gc);

       // 数据源配置
       DataSourceConfig dsc = new DataSourceConfig();
       dsc.setUrl("jdbc:mysql:23.343.32.22//:3306/fdsfdsfsdfsdfsd?autoReconnect=true&useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=CONVERT_TO_NULL&useSSL=false&serverTimezone=Asia/Shanghai");
       dsc.setDriverName("com.mysql.cj.jdbc.Driver");
       dsc.setUsername("dfsdfsdfds");
       dsc.setPassword("dfsdfsdfsd");
       mpg.setDataSource(dsc);
       // 包配置
       PackageConfig pc = new PackageConfig();
       pc.setModuleName(scanner("模块名"));
       pc.setParent("pro.nbbt.admin")
               .setMapper("dao")
               .setService("service")
               .setController("controller")
               .setEntity("model")
               .setXml("dao.mapping");
       mpg.setPackageInfo(pc);

       // 策略配置
       StrategyConfig strategy = new StrategyConfig();
       // 表名生成策略(下划线转驼峰命名)
       strategy.setNaming(NamingStrategy.underline_to_camel);
       // 列名生成策略(下划线转驼峰命名)
       strategy.setColumnNaming(NamingStrategy.underline_to_camel);
       // 是否启动Lombok配置
       strategy.setEntityLombokModel(true);
       // 是否启动REST风格配置
       strategy.setRestControllerStyle(true);
       // 自定义实体父类
       strategy.setSuperEntityClass("com.baomidou.mybatisplus.extension.activerecord.Model");
       // 自定义controller父类
       strategy.setSuperControllerClass("pro.nbbt.base.controller.BaseController");
       // 自定义service父接口
       strategy.setSuperServiceClass("com.baomidou.mybatisplus.extension.service.IService");
       // 自定义service实现类
       strategy.setSuperServiceImplClass("com.baomidou.mybatisplus.extension.service.impl.ServiceImpl");
       // 自定义mapper接口
       strategy.setSuperMapperClass("com.baomidou.mybatisplus.core.mapper.BaseMapper");
       strategy.setInclude(scanner("表名"));
       strategy.setSuperEntityColumns("id");
       mpg.setStrategy(strategy);

       // 执行
       mpg.execute();
   }

}

代码执行后
在这里插入图片描述

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值