Mybatis Plus 3.x 自动生成代码

自动生成代码

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

<dependency>
    <groupId>com.baomidougroupId>
    <artifactId>mybatis-plus-boot-starterartifactId>
    <version>3.0.7version>
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 {

   /**
    * 

* 读取控制台内容 *

*/
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(); } }

代码执行后
Mybatis Plus 3.x 自动生成代码_第1张图片

你可能感兴趣的:(Mybatis Plus 3.x 自动生成代码)