Springboot-mybatis-jpa根据Entity一键生成dao,mapper,xml,service,api,controller
java运行文件
依赖Hutool,主要输入文件及字符串转换,可换成其他。
自动读取Entity目录,生成其他,dao,mapper,xml,service,controller,api。可自定义。
依赖Springboot-mybatis-plus-jpa-druid-maven脚手架工程可私信或者看下篇博客
import cn.hutool.core.io.FileUtil;
import cn.hutool.core.util.StrUtil;
import org.junit.platform.commons.util.StringUtils;
import java.io.File;
import java.util.HashMap;
public class GeneratorFileTest {
private static final String SRC = "工程目录(entity上一级)";
private static final String ENTITY_PATH = File.separator + "entity";
private static final String MAPPER_PATH = File.separator +"mapper";
private static final String SERVICE_PATH = File.separator +"service";
private static final String DAO_PATH = File.separator +"dao";
private static final String ROUTE_BASE_PATH = File.separator + "route";
private static final String ROUTE_API = "api";
private static final int MODE = 2; //1.Mybatis 2.Hibernate
private static final String AUTHOR = "XXX";
private static final HashMap<String, String> entityMap = new HashMap<>();
public static void main(String[] args) {
getFile(SRC + ENTITY_PATH);
outPutFile(MODE);
System.out.println("Generated Done!");
}
private static void getFile(String path){
File file = new File(path);
File[] array = file.listFiles();
if (null == array){
return;
}
for (File value : array) {
if (value.isFile())//如果是文件
{
String name = value.getName();
if (!("BaseEntity.java".equals(name) ||
"IdEntity.java".equals(name) ||
"UIDEntity.java".equals(name) ||
"UUIDEntity.java".equals(name)
)) {
String filePath = value.getPath();
filePath = filePath.replace(SRC + ENTITY_PATH, "");
filePath = filePath.replace(name, "");
String filePack = filePath.replace(File.separator, "");
String s = entityMap.get(name);
if (StringUtils.isNotBlank(s)) {
System.out.println("文件名重复:" + name + " , 路径:" + filePath);
}
entityMap.put(name, filePack);
}
} else if (value.isDirectory())//如果是文件夹
{
getFile(value.getPath());
}
}
}
/**
* 生成mapper 或者Dao
* @param mode 1 mybatis 2 hibernate
*/
public static void outPutFile(int mode){
for (String name : entityMap.keySet()) {
String pack = entityMap.get(name);
// System.out.println(pack+ "." + name);
if (1 == mode){
outMapperFile(name, pack);
outMybatisServiceFile(name, pack);
outMybatisRouteFile(name, pack);
}
if (2 == mode){
outDaoFile(name, pack);
outHibernateServiceFile(name, pack);
outHibernateRouteFile(name, pack)