MybatisPlus代码生成器
1:什么是MybatisPlus?
MyBatis-Plus (opens new window)(简称 MP)是一个 MyBatis (opens new window)的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。
我们的愿景是成为 MyBatis 最好的搭档,就像 魂斗罗 中的 1P、2P,基友搭配,效率翻倍。 ---- 摘自官网
2:引入依赖
<!--mybatis-plus依赖-->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.3.1.tmp</version>
</dependency>
<!--代码生成器依赖-->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-generator</artifactId>
<version>3.3.1.tmp</version>
<scope>test</scope>
</dependency>
<!-- 模板引擎代码生成器 -->
<dependency>
<groupId>org.apache.velocity</groupId>
<artifactId>velocity-engine-core</artifactId>
<version>2.0</version>
</dependency>
3:配置代码生成器
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;
/**
* @author 七月初七
* @version 1.0
* @date 2021/7/10 15:51
*/
public class MyBatisPlusGenerator {
/**
* 数据库链接
*/
private static final String DRIVER_NAME = "com.mysql.cj.jdbc.Driver";
/**
* 用户名
*/
private static final String USERNAME = "root";
/**
* 密码
*/
private static final String PASSWORD = "你的密码";
/**
* 链接的url
*/
private static final String JDBC_URL = "jdbc:mysql://localhost:3306/qx?useUnicode=true&characterEncoding=UTF-8&serverTimezone=GMT%2B8";
/**
* 项目的绝对路径,从根路径开始,因为相对路径可能会出问题
*/
private static final String PATH = "E:\\Project\\qycq\\...";
/**
* 作者
*/
private static final String AUTHOR = "七月初七";
/**
* 包名
*/
private static final String PACKAGE = "com.qycq.server";
/**
* 实体类
*/
private static final String ENTITY = "pojo";
/**
* mapper
*/
private static final String MAPPER = "mapper";
/**
* controller
*/
private static final String CONTROLLER = "controller";
/**
* service
*/
private static final String SERVICE = "service";
/**
* serviceImpl
*/
private static final String SERVICE_IMPL = "service.impl";
/**
* 根据表名生成多个模块代码
*/
private static final String[] TABLE_NAME = {"你的表名1","你的表名2","...."};
public static void main(String[] args) {
//代码生成器
AutoGenerator autoGenerator = new AutoGenerator();
//数据源配置
DataSourceConfig dataSourceConfig = new DataSourceConfig();
dataSourceConfig.setDbType(DbType.MYSQL);//指定数据库类型
dataSourceConfig.setDriverName(DRIVER_NAME);
dataSourceConfig.setUsername(USERNAME);
dataSourceConfig.setPassword(PASSWORD);
dataSourceConfig.setUrl(JDBC_URL);
autoGenerator.setDataSource(dataSourceConfig);
//全局配置
GlobalConfig globalConfig = new GlobalConfig();
globalConfig.setOpen(false);
globalConfig.setFileOverride(false); //重新生成时文件是否覆盖
globalConfig.setBaseResultMap(true);
//xml 开启BaseColumnList
globalConfig.setBaseColumnList(true);
// 实体属性 Swagger2 注解
globalConfig.setSwagger2(true);
//输出路径
globalConfig.setOutputDir(PATH + "/src/main/java");
//设置作者名字
globalConfig.setAuthor(AUTHOR);
//去掉service的I前缀,一般只需要设置service就行
globalConfig.setServiceImplName("%sServiceImpl");
globalConfig.setServiceName("%sService");
autoGenerator.setGlobalConfig(globalConfig);
//包配置
PackageConfig packageConfig = new PackageConfig();
packageConfig.setParent(PACKAGE);//自定义包的路径
packageConfig.setEntity(ENTITY);
packageConfig.setMapper(MAPPER);
packageConfig.setController(CONTROLLER);
packageConfig.setService(SERVICE);
packageConfig.setServiceImpl(SERVICE_IMPL);
autoGenerator.setPackageInfo(packageConfig);
//策略配置
StrategyConfig strategyConfig = new StrategyConfig();
//是否使用Lombok
strategyConfig.setEntityLombokModel(true);
//生成RestController
strategyConfig.setRestControllerStyle(true);
//根据表名生成模块
strategyConfig.setInclude(TABLE_NAME);
//去掉表前缀
strategyConfig.setTablePrefix("t_");
autoGenerator.setStrategy(strategyConfig);
//数据库表映射到实体的命名策略
strategyConfig.setNaming(NamingStrategy.underline_to_camel);
//数据库表字段映射到实体的命名策略
strategyConfig.setColumnNaming(NamingStrategy.no_change);
//执行
autoGenerator.execute();
}
}
4:运行结果
1:控制台运行结果
2:代码生成
3:xml文件
4:实体类
5:service实现类
5:总结
mybatisPlus对于我们的开发无论是从代码生成器还是基本的crud功能都给我们提供好了,我们只需要掉方法即可。这里只是展示mybatisPlus的代码生成器
就不去介绍具体的使用了。有兴趣的小伙伴可以自行查阅官方文档哦~~。