Mybatis-Plus的特有功能之Generator
1、说明
1.MybatisPlus的功能在Mybatis的基础上只做增强 不做改变
2.逆向工程Generator功能 在原来基础上增加了Controller、Service 层代码
3.支持模板引擎自定义文件的生成配置
2、添加依赖
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus</artifactId>
<version>2.1.9</version>
</dependency>
3、话不多说上代码
generator代码↓
package com.example.demo.utils;
import java.io.File;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import com.baomidou.mybatisplus.enums.FieldFill;
import com.baomidou.mybatisplus.generator.AutoGenerator;
import com.baomidou.mybatisplus.generator.InjectionConfig;
import com.baomidou.mybatisplus.generator.config.DataSourceConfig;
import com.baomidou.mybatisplus.generator.config.FileOutConfig;
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.TemplateConfig;
import com.baomidou.mybatisplus.generator.config.converts.MySqlTypeConvert;
import com.baomidou.mybatisplus.generator.config.po.TableFill;
import com.baomidou.mybatisplus.generator.config.po.TableInfo;
import com.baomidou.mybatisplus.generator.config.rules.DbColumnType;
import com.baomidou.mybatisplus.generator.config.rules.DbType;
import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
public class MabatisPlusGenerator {
private static String baseProjectPath = "E:\\my\\workspace\\demo";
private static String viewProjectPath = "\\src\\main\\resources\\templates\\view\\";
private static String basePackage = "com.example.demo";
private static String authorName = "only3c";
private static String[] tables = {
"city" };
private static String prefix = "";
private static Boolean htmlPage = false;
private static File file = new File(basePackage);
private static String path = file.getAbsolutePath();
private static String driverName = "com.mysql.jdbc.Driver";
private static String url = "jdbc:mysql://127.0.0.1:3306/test?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&allowMultiQueries=true";
private static String username = "root";
private static String password = "password";
private static TableInfo tableInfo = null;
public static void main(String[] args) {
doMpGen();
}
public static void doMpGen() {
System.out.println(path);
if (htmlPage) {
for (String table : tables) {
File fff = new File(baseProjectPath + viewProjectPath + table.replaceAll("_", ""));
if (!fff.exists()) {
fff.mkdirs();
}
}
}
List<TableFill> tableFillList = new ArrayList<>();
tableFillList.add(new TableFill("ASDD_SS", FieldFill.INSERT_UPDATE));
AutoGenerator gen = new AutoGenerator();
gen.setDataSource(new DataSourceConfig().setDbType(DbType.MYSQL).setDriverName(driverName).setUrl(url)
.setUsername(username).setPassword(password).setTypeConvert(new MySqlTypeConvert() {
@Override
public DbColumnType processTypeConvert(String fieldType) {
System.out.println("转换类型:" + fieldType);
return super.processTypeConvert(fieldType);
}
}));
gen.setGlobalConfig(new GlobalConfig().setOutputDir(baseProjectPath + "/src/main/java")
.setFileOverride(true)
.setActiveRecord(true)
.setEnableCache(false)