Mybatis-plus通过AutoGenerator对象自动生成实体对象【包括controller、service、entity、mapper】
前言:
通过Mybatis-plus的AutoGenerator对象自动生成实体类,极大的节约了我们开发时间,我们只需要关注业务逻辑代码即可,这些没有任何技术含量的体力活就让Mybatis-plus来帮我们完成吧!!!
一、首先引入两个关键的jar包
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-generator</artifactId>
<version>3.3.1.tmp</version>
</dependency>
<dependency>
<groupId>org.apache.velocity</groupId>
<artifactId>velocity</artifactId>
<version>1.7</version>
</dependency>
二、接下来是生成实体对象的主要代码
在项目中新建个测试类,拷贝下面代码
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.DbType;
import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
public class test {
public static void main(String[] args) {
//1.创建generator对象
AutoGenerator autoGenerator = new AutoGenerator();
//2.配置数据源
DataSourceConfig dataSourceConfig = new DataSourceConfig();
dataSourceConfig.setDbType(DbType.MYSQL);
dataSourceConfig.setUrl("jdbc:mysql://xxx.xxx.x.xxx:3306/zxd?useSSL=false&useUnicode=true&characterEncoding=utf-8");
dataSourceConfig.setUsername("root");
dataSourceConfig.setPassword("root");
dataSourceConfig.setDriverName("com.mysql.cj.jdbc.Driver");
autoGenerator.setDataSource(dataSourceConfig);
//3.全局配置(指明这些类生成的具体位置以及作者....)
GlobalConfig globalConfig = new GlobalConfig();
globalConfig.setOutputDir(System.getProperty("user.dir")+"/src/main/java");
globalConfig.setOpen(false);//不打开文件
globalConfig.setAuthor("ZXD");
autoGenerator.setGlobalConfig(globalConfig);
//4.设置包信息(生成的类放在哪个包里面)
PackageConfig packageConfig = new PackageConfig();
packageConfig.setParent("com.zxd.test");
packageConfig.setModuleName("");//可以不填,填了反而会多一层目录
packageConfig.setController("controller");
packageConfig.setService("service");
packageConfig.setServiceImpl("service.impl");
packageConfig.setEntity("entity");
packageConfig.setMapper("mapper");//Mapper的xml文件会在这个目录下自动生成一个xml文件夹存放
autoGenerator.setPackageInfo(packageConfig);
//5.配置策略
StrategyConfig strategyConfig = new StrategyConfig();
//配置要生成的表
//这里填写需要生成实体类的表名,如果是所有对象都需要生成,这里就不填写;如果不是全部表需要生成,只能一个表一个表的生成,我尝试过配置多个表,但是后面的会把前面的给覆盖掉,如果哪位大佬有好的方法欢迎留言交流;
strategyConfig.setInclude("table_name");
//提供lombok
strategyConfig.setEntityLombokModel(true);
//支持驼峰
strategyConfig.setNaming(NamingStrategy.underline_to_camel);
strategyConfig.setColumnNaming(NamingStrategy.underline_to_camel);
autoGenerator.setStrategy(strategyConfig);
//6.执行
autoGenerator.execute();
}
}
在配置需要生成实体类数据库表那里;如果不是全部表需要生成,只能一个表一个表的生成,我尝试过配置多个表,但是后面的会把前面的给覆盖掉,如果哪位大佬有好的方法欢迎留言交流!!!