MybatisPlus使用代码生成器遇到的小问题(推荐)
作者:OverZeal 发布时间:2021-07-17 09:15:17
标签:Mybatis,Plus,代码生成器,自动生成代码
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
作为模板引擎,同时也支持Freemarker
、Beetl
需要替换参看链接
这里贴一个比较简单的代码生成器代码
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();
}
来源:https://www.cnblogs.com/lz2017/p/11617965.html


猜你喜欢
- feign对象传参和普通传参及遇到的坑对象传参使用@RequestBody来指定传参对象@RequestMapping(value = &q
- JAVA并发总览核心问题并不是程序的漏洞导致的,而是操作系统底层机制导致的原子性:可见性问题:改的是缓存,但是缓存对另一个线程不可见有序性问
- 今天为大家介绍一下语音动弹界面的实现,新版本的客户端大家应该都看过了,这里我就只简单的介绍一下控件布局了。你可以在这里看到本控件的完整源码:
- 这个其实很简单,思路是这样的,就是拿view的宽度,除以点的点的宽度+二个点 之间的间距,就可以算出大概能画出几个点
- SpringBoot下载Excel文件文件损坏我把模板文件放在了resources目录下maven插件打包项目的时候,默认会压缩resour
- 本文实例为大家分享了Android自定义view实现TextView方形输入框的具体代码,供大家参考,具体内容如下先奉上最终效果图实现思路分
- Chart控件可以用来绘制波形图、柱状图、饼图、折线图等,用来进行数据表现是很不错的,现在简单说一下这个控件的使用方法XAML:<Wi
- 本文实例讲述了C#双缓冲实现方法。分享给大家供大家参考,具体如下:// 该调用是 Windows.Forms &nb
- 无聊逛论坛,发现了这张图真是厉害啊,这排序, 既有多线程,又有排序,还有lambda表达式,但是这是C#版本,作为一个入坑的Java爱好者,
- 定义:动态给一个对象添加一些额外的职责,就象在墙上刷油漆.使用Decorator模式相比用生成子类方式达到功能的扩充显得更为灵活。设计初衷:
- 在实际业务中,当后台数据发生变化,客户端能够实时的收到通知,而不是由用户主动的进行页面刷新才能查看,这将是一个非常人性化的设计。比如数字化大
- 前言在前后端分离开发的时候我们需要用到参数校验,前端需要进行参数校验,后端接口同样的也需要,以防传入不合法的数据。1、首先还是先导包,导入p
- 本文实例为大家分享了Android App获取屏幕旋转角度的具体代码,供大家参考,具体内容如下一、获取屏幕旋转角度的方法是:int rota
- 前言首先,我们要讲的是JVM的垃圾回收机制,我默认准备阅读本篇的人都知道以下两点:JVM是做什么的Java堆是什么因为我们即将要讲的就是发生
- 通过子类调用父类的变量,有两种方法:1、把父类的变量设置成public:package triangle.opengl.wlz.stu.ch
- 实现效果:奔溃的线程侠:(单线程)主线程正在处理刷新图片的请求时,无法再接受其他请求,从而陷入阻塞的死循环状态。绘制图片import jav
- 一、模糊查询的几种实现方式1.concat函数和#{}拼接的方式student_name like concat('%',#
- 在此附上超详细JDK1.8安装与配置超详细JDK1.8安装与配置一、卸载JDK应用程序①在开始处,点击设置②点击应用③点击程序和功能④打开程
- using System;using System.Runtime.InteropServices;using System.Windows
- 1. * 在 Spring Boot 可以可以在以下情况执行操作:在将请求发送到控制器之前在将响应发送给客户端之前2. * 使用下面实现