栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

基于Mybatis Plus实现代码生成器CodeGenerator

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

基于Mybatis Plus实现代码生成器CodeGenerator

导入生成器需要的依赖坐标:


  com.baomidou
  mybatis-plus-generator
  3.2.0



  org.apache.velocity
  velocity-engine-core
  2.1



  org.freemarker
  freemarker
  2.3.29



  com.ibeetl
  beetl
  3.0.11.RELEASE

新建了一个普通Maven空项目:

创建我们的代码生成器程序:

import com.baomidou.mybatisplus.core.exceptions.MybatisPlusException;
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.apache.commons.lang3.StringUtils;

import java.util.Scanner;


public class CodeGenerator {

  
  public static String scanner(String tip) {
    Scanner scanner = new Scanner(System.in);
    StringBuilder help = new StringBuilder();
    help.append("请输入").append(tip).append(":");
    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 mybatisPlusCodeGenerator = new AutoGenerator();

    // 全局配置
    GlobalConfig gc = new GlobalConfig();
    
    // 先得到当前工程目录
    String projectPath = System.getProperty("user.dir");
    // 是maven项目的结构,就是工程目录 + /src/main/java
    gc.setOutputDir(projectPath + "/src/main/java");
    
    //gc.setOutputDir("D:\workspace-sts\0520adv\02_mp_springboot/src/main/java");
    
    // 设置生成文件的作者信息
    gc.setAuthor("Echo42");

    //当代码生成完成之后是否打开代码所在的文件夹
    gc.setOpen(true);
    
    // gc.setSwagger2(true); 实体属性 Swagger2 注解
    //gc.setServiceName("%sService");
    
    // 将上述的全局配置注入
    mybatisPlusCodeGenerator.setGlobalConfig(gc);

    // 数据源配置
    DataSourceConfig dataSourceConfiguration = new DataSourceConfig();

    dataSourceConfiguration.setUrl("jdbc:mysql://localhost:3306/oa?useUnicode=true&useSSL=false&characterEncoding=utf8&serverTimezone=UTC");

    // dataSourceConfiguration.setSchemaName("public");
    dataSourceConfiguration.setDriverName("com.mysql.cj.jdbc.Driver");
    dataSourceConfiguration.setUsername("root");
    dataSourceConfiguration.setPassword("123456");

    mybatisPlusCodeGenerator.setDataSource(dataSourceConfiguration);

    // 包配置
    PackageConfig pc = new PackageConfig();

    // 设置父级包名
    pc.setParent("cn.echo42");//controller entity service service.impl

    pc.setModuleName(scanner("模块名"));
    //pc.setModuleName("sys");

    // 实体类名称
    pc.setEntity("domain");

    // mapper包名称
    pc.setMapper("mapper");

    // mapper对应的映射器xml
    pc.setXml("mapper.xml");

    // 业务包层名称
    pc.setService("service");

    // 业务接口的实现类包
    pc.setServiceImpl("service.impl");

    // 控制器包名称
    pc.setController("controller");

    // 装填包信息对象
    mybatisPlusCodeGenerator.setPackageInfo(pc);

    // 策略配置
    StrategyConfig strategy = new StrategyConfig();

    //设置字段和表名的是否把下划线完成驼峰命名规则
    strategy.setNaming(NamingStrategy.underline_to_camel);

    strategy.setColumnNaming(NamingStrategy.underline_to_camel);

    //设置生成的实体类继承的父类
    //strategy.setSuperEntityClass("com.sxt.baseEntity");

    //是否启动lombok
    strategy.setEntityLombokModel(true);

    //是否生成resetController
    strategy.setRestControllerStyle(true);

    // 公共父类
    //strategy.setSuperControllerClass("com.sxt.baseController");

    // 写于父类中的公共字段
    //strategy.setSuperEntityColumns("person_id","person_name");

    //要设置生成哪些表 如果不设置就是生成所有的表
    //strategy.setInclude(scanner("表名,多个英文逗号分割").split(","));

    strategy.setControllerMappingHyphenStyle(true);

    //strategy.setTablePrefix(pc.getModuleName() + "_");
    strategy.setTablePrefix("sys_");

    mybatisPlusCodeGenerator.setStrategy(strategy);

    mybatisPlusCodeGenerator.execute();
  }
}

点击运行:

然后生成的这个目录结构:

基础四层就帮我们自动创建完成了:

controller报错是因为没有加入SpringMVC:

如果是SSMP的开发模式,编写结构文件使用这个能省力很多,

但是对结构不清楚的情况还是多人肉手写熟悉熟悉

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持考高分网。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/132492.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号