MybatisPlus使用代码生成器遇到的小问题(推荐)

 更新时间:2020年08月28日 09:57:14   作者:OverZeal  
这篇文章主要介绍了MybatisPlus使用代码生成器遇到的小问题,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

MybatisPlus 给我们提供了更加强大的代码生成器

MyBatisPlus 在3.0.3版本之前使用代码生成器因为存在默认依赖,所以不需要其他的依赖,项目中使用的是3.0.1的版本,所以不用添加其他依赖,添加之后反倒是会报错,实际上MP官网上已经说明了这一点,只是自己没注意才出现错误

3.0.3版本之后就需要添加如下依赖

<dependency>
 <groupId>com.baomidou</groupId>
 <artifactId>mybatis-plus-generator</artifactId>
 <version>3.2.0</version>
</dependency>
<dependency>
 <groupId>org.apache.velocity</groupId>
 <artifactId>velocity-engine-core</artifactId>
 <version>2.1</version>
</dependency>

MP默认将Velocity作为模板引擎,同时也支持FreemarkerBeetl 需要替换参看链接

这里贴一个比较简单的代码生成器代码

import com.baomidou.mybatisplus.annotation.DbType;
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;

public class CodeGeneration {

 /**
  *
  * @Title: main
  * @Description: 生成
  * @param args
  */
 public static void main(String[] args) {
  AutoGenerator mpg = new AutoGenerator();

  // 全局配置
  GlobalConfig gc = new GlobalConfig();
  gc.setOutputDir("D:\\generation");//输出文件路径
  gc.setFileOverride(true); // 是否文件覆盖
  gc.setActiveRecord(false);// 不需要ActiveRecord(实体类继承Model)特性的请改为false
  gc.setEnableCache(false);// XML 二级缓存
  gc.setBaseResultMap(true);// XML ResultMap
  gc.setBaseColumnList(true);// XML ColumnList
  gc.setAuthor("lizhan");// 作者

  // 自定义文件命名,注意 %s 会自动填充表实体属性!
  gc.setControllerName("%sController");
  // 默认service接口名IXXXService 自定义指定之后就不会用I开头了
  gc.setServiceName("%sService");
  gc.setServiceImplName("%sServiceImpl");
  gc.setMapperName("%sMapper");
  gc.setXmlName("%sMapper");
  mpg.setGlobalConfig(gc);

  // 数据源配置
  DataSourceConfig dsc = new DataSourceConfig();
  dsc.setDbType(DbType.MYSQL);
  dsc.setDriverName("com.mysql.cj.jdbc.Driver");
  dsc.setUsername("xxx");
  dsc.setPassword("xxx");
  dsc.setUrl("jdbc:mysql://localhost:3306/xxx");
  mpg.setDataSource(dsc);

  // 策略配置
  StrategyConfig strategy = new StrategyConfig();
  // strategy.setTablePrefix(new String[] { "sys_" });// 此处可以修改为您的表前缀
  strategy.setNaming(NamingStrategy.underline_to_camel);// 表名生成策略(下划线转驼峰)
  strategy.setInclude("user"); // 需要生成的表名

  strategy.setSuperServiceClass(null);
  strategy.setSuperServiceImplClass(null);
  strategy.setSuperMapperClass(null);

  mpg.setStrategy(strategy);

  // 包配置
  PackageConfig pc = new PackageConfig();
  pc.setParent("com.xxx");
  pc.setController("controller");
  pc.setService("service");
  pc.setServiceImpl("impl");
  pc.setMapper("mapper");
  pc.setEntity("entity");
  pc.setXml("xml");
  mpg.setPackageInfo(pc);

  // 执行生成
  mpg.execute();

 }

}

PS:下面看下MybatisPlus自动生成代码

POM依赖

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

样板代码 

//01配置链接数据源
 public static DataSourceConfig dataSource() {
  DataSourceConfig dataSourceConfig = new DataSourceConfig();
  dataSourceConfig.setDbType(DbType.MYSQL);
  /**************这里请填写你的ip和你的端口号及数据库名称**************/
  dataSourceConfig.setUrl("jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8");
  /**************您的账号**************/
  dataSourceConfig.setUsername("root");
  /**************您的密码**************/
  dataSourceConfig.setPassword("root");
  //您的数据库引擎
  dataSourceConfig.setDriverName("com.mysql.cj.jdbc.Driver");
  return dataSourceConfig;
 }

 //02配置全局
 public static GlobalConfig globalConfig() {
  GlobalConfig globalConfig = new GlobalConfig();
  /**************路径**************/
  globalConfig.setOutputDir("X:\\xxx\\" + "/src/main/java");
  //不会默认打开文件夹
  globalConfig.setOpen(false);
  //创建者
  globalConfig.setAuthor("xxx");
  //创建serviceImpl不会有大写的I
  globalConfig.setServiceName("%sService");
  return globalConfig;
 }

 //03配置包信息
 public static PackageConfig packageConfig() {
  PackageConfig packageConfig = new PackageConfig();
  /**************父级包名**************/
  packageConfig.setParent("com.xxxxx");
  //父级包名称
  packageConfig.setModuleName("generator");
  packageConfig.setController("controller");
  packageConfig.setService("service");
  packageConfig.setServiceImpl("service.impl");
  packageConfig.setMapper("mapper");
  packageConfig.setEntity("entity");
  return packageConfig;
 }

 //04配置策略
 public static StrategyConfig strategyConfig(){
  StrategyConfig strategyConfig = new StrategyConfig();
  //添加lombok
  strategyConfig.setEntityLombokModel(true);
  //下划线转驼峰
  strategyConfig.setNaming(NamingStrategy.underline_to_camel);
  //同上
  strategyConfig.setColumnNaming(NamingStrategy.underline_to_camel);
  /**************要生成的表名**************/
  strategyConfig.setInclude("xxx");
  return strategyConfig;
 }

 public static void main(String[] args) {
  //创建generator对象
  AutoGenerator autoGenerator = new AutoGenerator();
  //链接配置
  autoGenerator.setDataSource(dataSource());
  //全局配置
  autoGenerator.setGlobalConfig(globalConfig());
  //包信息
  autoGenerator.setPackageInfo(packageConfig());
  //配置策略
  autoGenerator.setStrategy(strategyConfig());
  //去吧皮卡丘
  autoGenerator.execute();
 }

总结

到此这篇关于MybatisPlus使用代码生成器遇到的小问题(推荐)的文章就介绍到这了,更多相关MybatisPlus代码生成器内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • java面向国际化项目开发需遵循的命名规范

    java面向国际化项目开发需遵循的命名规范

    这篇文章主要为大家介绍了在参与开发国际化项目时需遵循的java命名规范,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步
    2022-03-03
  • Java手写图书管理基本功能附代码

    Java手写图书管理基本功能附代码

    随着网络技术的高速发展,计算机应用的普及,利用计算机对图书馆的日常工作进行管理势在必行,本篇文章手把手带你用Java实现一个图书管理系统,大家可以在过程中查缺补漏,提升水平
    2022-04-04
  • 一次诡异的full gc查找问题全过程

    一次诡异的full gc查找问题全过程

    这篇文章主要给大家分享介绍了一次诡异的full gc查找问题全部过程,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧啊
    2018-11-11
  • 微信公众号获取access_token的方法实例分析

    微信公众号获取access_token的方法实例分析

    这篇文章主要介绍了微信公众号获取access_token的方法,结合实例形式分析了java实现微信公众号获取access_token的相关原理、实现方法及操作注意事项,需要的朋友可以参考下
    2019-10-10
  • spring的IoC和DI详解

    spring的IoC和DI详解

    这篇文章主要介绍了spring的IoC和DI详解,还是挺不错的,这里分享给加,需要的朋友可以参考下。
    2017-11-11
  • myeclipse8.5优化技巧详解

    myeclipse8.5优化技巧详解

    本文详细介绍了myeclipse8.5优化技巧,在这里和大家分享一下,希望对大家有用。
    2017-09-09
  • Java日期接收报错:could not be parsed, unparsed text found at index 10解决办法

    Java日期接收报错:could not be parsed, unparsed text found a

    在做Java开发时肯定会碰到传递时间参数的情况,这篇文章主要给大家介绍了关于Java日期接收报错:could not be parsed, unparsed text found at index 10的解决办法,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2024-01-01
  • 详解Maven打包和运行

    详解Maven打包和运行

    这篇文章主要介绍了Maven打包和运行的相关知识,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-07-07
  • 面试官问如何启动Java 线程

    面试官问如何启动Java 线程

    这篇文章主要介绍了面试官问如何启动Java 线程,Java 的线程创建和启动非常简单,但如果问一个线程是怎么启动起来的往往并不清楚,甚至不知道为什么启动时是调用start(),而不是调用run()方法呢?下面我们就一起进入文章学习这个问题吧
    2021-12-12
  • Scala入门教程详解

    Scala入门教程详解

    这篇文章主要介绍了Scala入门教程详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-06-06

最新评论