Former-commit-id: 80b8d86e0baab8487ce10466bf3cd66007f17d09
master
王兵 5 years ago
parent e72d048e58
commit 52cf4e1f03

@ -44,6 +44,7 @@ import xyz.wbsite.dbtool.javafx.ctrl.DetailModuleController;
import xyz.wbsite.dbtool.javafx.ctrl.DetailProjectController; import xyz.wbsite.dbtool.javafx.ctrl.DetailProjectController;
import xyz.wbsite.dbtool.javafx.ctrl.DetailTableController; import xyz.wbsite.dbtool.javafx.ctrl.DetailTableController;
import xyz.wbsite.dbtool.javafx.ctrl.MainController; import xyz.wbsite.dbtool.javafx.ctrl.MainController;
import xyz.wbsite.dbtool.javafx.enums.DataBase;
import xyz.wbsite.dbtool.javafx.enums.FieldType; import xyz.wbsite.dbtool.javafx.enums.FieldType;
import xyz.wbsite.dbtool.javafx.manger.ManagerFactory; import xyz.wbsite.dbtool.javafx.manger.ManagerFactory;
import xyz.wbsite.dbtool.javafx.manger.ProjectManager; import xyz.wbsite.dbtool.javafx.manger.ProjectManager;
@ -449,26 +450,26 @@ public class JavaFxApplication extends Application {
detailProjectController.getMultiDB().selectedProperty().addListener(new ChangeListener<Boolean>() { detailProjectController.getMultiDB().selectedProperty().addListener(new ChangeListener<Boolean>() {
@Override @Override
public void changed(ObservableValue<? extends Boolean> observable, Boolean oldValue, Boolean newValue) { public void changed(ObservableValue<? extends Boolean> observable, Boolean oldValue, Boolean newValue) {
currentProject.setMultiDB(newValue); currentProject.setNeedMoreDB(newValue);
} }
}); });
detailProjectController.getSysMD().selectedProperty().addListener(new ChangeListener<Boolean>() { detailProjectController.getSysMD().selectedProperty().addListener(new ChangeListener<Boolean>() {
@Override @Override
public void changed(ObservableValue<? extends Boolean> observable, Boolean oldValue, Boolean newValue) { public void changed(ObservableValue<? extends Boolean> observable, Boolean oldValue, Boolean newValue) {
currentProject.setSysMD(newValue); currentProject.setNeedSys(newValue);
} }
}); });
detailProjectController.getCloud().selectedProperty().addListener(new ChangeListener<Boolean>() { detailProjectController.getCloud().selectedProperty().addListener(new ChangeListener<Boolean>() {
@Override @Override
public void changed(ObservableValue<? extends Boolean> observable, Boolean oldValue, Boolean newValue) { public void changed(ObservableValue<? extends Boolean> observable, Boolean oldValue, Boolean newValue) {
currentProject.setCloud(newValue); currentProject.setNeedCloud(newValue);
} }
}); });
detailProjectController.getDatabase().selectedToggleProperty().addListener(new ChangeListener<Toggle>() { detailProjectController.getDatabase().selectedToggleProperty().addListener(new ChangeListener<Toggle>() {
@Override @Override
public void changed(ObservableValue<? extends Toggle> observable, Toggle oldValue, Toggle newValue) { public void changed(ObservableValue<? extends Toggle> observable, Toggle oldValue, Toggle newValue) {
RadioButton radioButton = (RadioButton) newValue; RadioButton radioButton = (RadioButton) newValue;
currentProject.setDatabase(radioButton.getText()); currentProject.setDatabase(DataBase.valueOf(radioButton.getText()));
} }
}); });
} }
@ -625,8 +626,8 @@ public class JavaFxApplication extends Application {
detailProjectController.getProjectName().setText(currentProject.getProjectName()); detailProjectController.getProjectName().setText(currentProject.getProjectName());
detailProjectController.getProjectBasePackage().setText(currentProject.getProjectBasePackage()); detailProjectController.getProjectBasePackage().setText(currentProject.getProjectBasePackage());
detailProjectController.getProjectAuthor().setText(currentProject.getProjectAuthor()); detailProjectController.getProjectAuthor().setText(currentProject.getProjectAuthor());
detailProjectController.getMultiDB().setSelected(currentProject.getMultiDB()); detailProjectController.getMultiDB().setSelected(currentProject.isNeedMoreDB());
detailProjectController.getSysMD().setSelected(currentProject.getSysMD()); detailProjectController.getSysMD().setSelected(currentProject.isNeedSys());
ObservableList<Toggle> toggles = detailProjectController.getDatabase().getToggles(); ObservableList<Toggle> toggles = detailProjectController.getDatabase().getToggles();
Toggle toggle = toggles.get(0); Toggle toggle = toggles.get(0);
for (Toggle tog : toggles) { for (Toggle tog : toggles) {
@ -636,7 +637,7 @@ public class JavaFxApplication extends Application {
} }
} }
detailProjectController.getDatabase().selectToggle(toggle); detailProjectController.getDatabase().selectToggle(toggle);
detailProjectController.getCloud().setSelected(currentProject.isCloud()); detailProjectController.getCloud().setSelected(currentProject.isNeedCloud());
if (gridPane != null) { if (gridPane != null) {
mDetail.getChildren().clear(); mDetail.getChildren().clear();

@ -6,7 +6,7 @@ public class ManagerFactory {
private static XmlManager xmlManager = null; private static XmlManager xmlManager = null;
private static JsonManager jsonManager = null; private static JsonManager jsonManager = null;
private static ReflashManager reflashManager = null; private static ReflashManager reflashManager = null;
private static ProjectManager projectManager; private static ProjectManager projectManager = null;
private static FreeMarkerManager freeMarkerManager; private static FreeMarkerManager freeMarkerManager;
static { static {

@ -352,8 +352,7 @@ public class ProjectManager {
new Thread() { new Thread() {
@Override @Override
public void run() { public void run() {
Callable callback = null; Callable callback = new SpringBootCallable(project, path);
callback = new SpringBootCallable(project, path);
Future submit = service.submit(callback); Future submit = service.submit(callback);
try { try {

@ -4,6 +4,7 @@ import org.w3c.dom.Document;
import org.w3c.dom.Element; import org.w3c.dom.Element;
import org.w3c.dom.NodeList; import org.w3c.dom.NodeList;
import xyz.wbsite.dbtool.javafx.annotation.Property; import xyz.wbsite.dbtool.javafx.annotation.Property;
import xyz.wbsite.dbtool.javafx.enums.DataBase;
import xyz.wbsite.dbtool.javafx.enums.FieldType; import xyz.wbsite.dbtool.javafx.enums.FieldType;
import xyz.wbsite.dbtool.javafx.po.Field; import xyz.wbsite.dbtool.javafx.po.Field;
import xyz.wbsite.dbtool.javafx.po.Module; import xyz.wbsite.dbtool.javafx.po.Module;
@ -60,6 +61,14 @@ public class XmlManager {
declaredField.setAccessible(true); declaredField.setAccessible(true);
if (declaredField.getType() == String.class) { if (declaredField.getType() == String.class) {
declaredField.set(project, textContent); declaredField.set(project, textContent);
} else if (declaredField.getType() == DataBase.class) {
DataBase dataBase = null;
try {
dataBase = DataBase.valueOf(textContent);
} catch (IllegalArgumentException e) {
dataBase = DataBase.MySQL;
}
declaredField.set(project, dataBase);
} else if (declaredField.getType() == Boolean.class || declaredField.getType() == boolean.class) { } else if (declaredField.getType() == Boolean.class || declaredField.getType() == boolean.class) {
declaredField.setBoolean(project, getBoolean(textContent)); declaredField.setBoolean(project, getBoolean(textContent));
} }

@ -19,6 +19,7 @@ import java.sql.Connection;
import java.sql.DriverManager; import java.sql.DriverManager;
import java.sql.SQLException; import java.sql.SQLException;
import java.sql.Statement; import java.sql.Statement;
import java.util.ArrayList;
import java.util.Date; import java.util.Date;
import java.util.HashMap; import java.util.HashMap;
import java.util.concurrent.Callable; import java.util.concurrent.Callable;
@ -26,17 +27,13 @@ import java.util.concurrent.Callable;
public class SpringBootCallable implements Callable { public class SpringBootCallable implements Callable {
private String root; private String root;
private DataBase dataBase;
private Project project; private Project project;
private boolean cloud;
private AbstractDBmapper dBmapper; private AbstractDBmapper dBmapper;
private FreeMarkerManager freeMarkerManager; private FreeMarkerManager freeMarkerManager;
public SpringBootCallable(Project project, String root) { public SpringBootCallable(Project project, String root) {
this.root = root; this.root = root;
this.dataBase = DataBase.valueOf(project.getDatabase());
this.project = project; this.project = project;
this.cloud = project.isCloud();
this.freeMarkerManager = ManagerFactory.getFreeMarkerManager(); this.freeMarkerManager = ManagerFactory.getFreeMarkerManager();
this.dBmapper = ProjectManager.dBmapper; this.dBmapper = ProjectManager.dBmapper;
} }
@ -66,17 +63,17 @@ public class SpringBootCallable implements Callable {
File testResourcesDir = Tool.createPath(projectDir.getAbsolutePath(), "src", "test", "resources"); File testResourcesDir = Tool.createPath(projectDir.getAbsolutePath(), "src", "test", "resources");
// 生成POM // 生成POM
generatePom(projectDir, project, dataBase); generatePom(projectDir, project);
{//生成java文件 {//生成java文件
//生成 Controller //生成 Controller
System.out.println("生成模块:action"); System.out.println("生成模块:action");
generateController(Tool.createPath(domainDir.getAbsolutePath(), "action"), project, dataBase); generateController(Tool.createPath(domainDir.getAbsolutePath(), "action"), project);
// 生成 Config // 生成 Config
System.out.println("生成模块:config"); System.out.println("生成模块:config");
generateConfig(Tool.createPath(domainDir.getAbsolutePath(), "config"), project, dataBase); generateConfig(Tool.createPath(domainDir.getAbsolutePath(), "config"), project);
{// 模块 {// 模块
@ -88,58 +85,58 @@ public class SpringBootCallable implements Callable {
File moduleDir = Tool.createPath(domainDir.getAbsolutePath(), "module", module.getModuleName()); File moduleDir = Tool.createPath(domainDir.getAbsolutePath(), "module", module.getModuleName());
System.out.println("生成模块:Entity"); System.out.println("生成模块:Entity");
generateEntity(Tool.createPath(moduleDir.getAbsolutePath(), "ent"), module, dataBase); generateEntity(Tool.createPath(moduleDir.getAbsolutePath(), "ent"), module);
System.out.println("生成模块:Mapper"); System.out.println("生成模块:Mapper");
generateMapper(Tool.createPath(moduleDir.getAbsolutePath(), "mpr"), module, dataBase); generateMapper(Tool.createPath(moduleDir.getAbsolutePath(), "mpr"), module);
System.out.println("生成模块:Manager"); System.out.println("生成模块:Manager");
generateManager(Tool.createPath(moduleDir.getAbsolutePath(), "mgr"), module, dataBase); generateManager(Tool.createPath(moduleDir.getAbsolutePath(), "mgr"), module);
System.out.println("生成模块:Request"); System.out.println("生成模块:Request");
generateRequest(Tool.createPath(moduleDir.getAbsolutePath(), "req"), module, dataBase); generateRequest(Tool.createPath(moduleDir.getAbsolutePath(), "req"), module);
System.out.println("生成模块:Response"); System.out.println("生成模块:Response");
generateResponse(Tool.createPath(moduleDir.getAbsolutePath(), "rsp"), module, dataBase); generateResponse(Tool.createPath(moduleDir.getAbsolutePath(), "rsp"), module);
} }
if (project.getSysMD()) {//生成系统模块 if (project.isNeedSys()) {//生成系统模块
Module module = new Module(); Module module = new Module();
module.setModuleName("system"); module.setModuleName("system");
module.setProjectAuthor(project.getProjectAuthor()); module.setProjectAuthor(project.getProjectAuthor());
module.setProjectBasePackage(project.getProjectBasePackage()); module.setProjectBasePackage(project.getProjectBasePackage());
module.setProjectName(project.getProjectName()); module.setProjectName(project.getProjectName());
File moduleDir = Tool.createPath(domainDir.getAbsolutePath(), "module", "system"); File moduleDir = Tool.createPath(domainDir.getAbsolutePath(), "module", "system");
generateSystemModule(moduleDir, module, dataBase); generateSystemModule(moduleDir, module);
} }
} }
// frame等内容 // frame等内容
System.out.println("生成模块:frame"); System.out.println("生成模块:frame");
generateFrame(Tool.createPath(domainDir.getAbsolutePath(), "frame"), project, dataBase); generateFrame(Tool.createPath(domainDir.getAbsolutePath(), "frame"), project);
// Task // Task
System.out.println("生成模块:task"); System.out.println("生成模块:task");
generateTask(Tool.createPath(domainDir.getAbsolutePath(), "task"), project, dataBase); generateTask(Tool.createPath(domainDir.getAbsolutePath(), "task"), project);
// Application // Application
System.out.println("生成模块:Application"); System.out.println("生成模块:Application");
generateApplication(Tool.createPath(domainDir.getAbsolutePath()), project, dataBase); generateApplication(Tool.createPath(domainDir.getAbsolutePath()), project);
} }
{//生成resources文件 {//生成resources文件
System.out.println("生成模块:Resources"); System.out.println("生成模块:Resources");
generateResources(resourcesDir, project, dataBase); generateResources(resourcesDir, project);
System.out.println("生成模块:Static"); System.out.println("生成模块:Static");
generateStatic(resourcesDir, project, dataBase); generateStatic(resourcesDir, project);
System.out.println("生成模块:Templates"); System.out.println("生成模块:Templates");
generateTemplates(resourcesDir, project, dataBase); generateTemplates(resourcesDir, project);
} }
{//生成Test {//生成Test
System.out.println("生成模块:Test"); System.out.println("生成模块:Test");
generateTest(testDomainDir, project, dataBase); generateTest(testDomainDir, project);
} }
{//生成Test Resources {//生成Test Resources
System.out.println("生成模块:Test Resources"); System.out.println("生成模块:Test Resources");
generateTestResources(testResourcesDir, project, dataBase); generateTestResources(testResourcesDir, project);
} }
System.out.println("finish"); System.out.println("finish");
return true; return true;
@ -152,12 +149,12 @@ public class SpringBootCallable implements Callable {
* @param root * @param root
* @param project * @param project
*/ */
public void generatePom(File root, Project project, DataBase dataBase) { public void generatePom(File root, Project project) {
HashMap<String, Object> ctx = new HashMap<String, Object>(); HashMap<String, Object> ctx = new HashMap<String, Object>();
ctx.put("projectName", project.getProjectName()); ctx.put("projectName", project.getProjectName());
ctx.put("basePackage", project.getProjectBasePackage()); ctx.put("basePackage", project.getProjectBasePackage());
ctx.put("dataBase", dataBase.toString()); ctx.put("dataBase", project.getDatabase().toString());
ctx.put("cloud", cloud); ctx.put("project", project);
freeMarkerManager.outputTemp(Tool.createFile(root.getAbsolutePath(), "pom.xml"), "SpringBoot/pom.ftl", ctx); freeMarkerManager.outputTemp(Tool.createFile(root.getAbsolutePath(), "pom.xml"), "SpringBoot/pom.ftl", ctx);
} }
@ -167,7 +164,7 @@ public class SpringBootCallable implements Callable {
* @param root * @param root
* @param project * @param project
*/ */
public void generateController(File root, Project project, DataBase dataBase) { public void generateController(File root, Project project) {
Tool.clear(root); Tool.clear(root);
HashMap<String, Object> ctx = new HashMap<String, Object>(); HashMap<String, Object> ctx = new HashMap<String, Object>();
ctx.put("basePackage", project.getProjectBasePackage()); ctx.put("basePackage", project.getProjectBasePackage());
@ -197,7 +194,7 @@ public class SpringBootCallable implements Callable {
} }
} }
if (project.getSysMD()) {//生成系统模块 if (project.isNeedSys()) {//生成系统模块
File system = Tool.createPath(ajax.getAbsolutePath(), "system"); File system = Tool.createPath(ajax.getAbsolutePath(), "system");
for (String name : ResourceUtil.getResourceFiles("/modules/SpringBoot/java/action/ajax/system/")) { for (String name : ResourceUtil.getResourceFiles("/modules/SpringBoot/java/action/ajax/system/")) {
@ -223,7 +220,7 @@ public class SpringBootCallable implements Callable {
} }
} }
if (project.getSysMD()) {//生成系统模块 if (project.isNeedSys()) {//生成系统模块
File system = Tool.createPath(api.getAbsolutePath(), "system"); File system = Tool.createPath(api.getAbsolutePath(), "system");
for (String name : ResourceUtil.getResourceFiles("/modules/SpringBoot/java/action/api/system/")) { for (String name : ResourceUtil.getResourceFiles("/modules/SpringBoot/java/action/api/system/")) {
@ -235,7 +232,7 @@ public class SpringBootCallable implements Callable {
freeMarkerManager.outputTemp(Tool.createFile(root.getAbsolutePath(), "GlobalController.java"), "SpringBoot/java/action/GlobalController.java", ctx); freeMarkerManager.outputTemp(Tool.createFile(root.getAbsolutePath(), "GlobalController.java"), "SpringBoot/java/action/GlobalController.java", ctx);
} }
public void generateConfig(File root, Project project, DataBase dataBase) { public void generateConfig(File root, Project project) {
if (!root.exists()) { if (!root.exists()) {
root.mkdirs(); root.mkdirs();
} else { } else {
@ -255,10 +252,10 @@ public class SpringBootCallable implements Callable {
freeMarkerManager.outputTemp(Tool.createFile(root.getAbsolutePath(), "ScheduleConfig.java"), "SpringBoot/java/config/ScheduleConfig.java", ctx); freeMarkerManager.outputTemp(Tool.createFile(root.getAbsolutePath(), "ScheduleConfig.java"), "SpringBoot/java/config/ScheduleConfig.java", ctx);
freeMarkerManager.outputTemp(Tool.createFile(root.getAbsolutePath(), "ThreadPoolConfig.java"), "SpringBoot/java/config/ThreadPoolConfig.java", ctx); freeMarkerManager.outputTemp(Tool.createFile(root.getAbsolutePath(), "ThreadPoolConfig.java"), "SpringBoot/java/config/ThreadPoolConfig.java", ctx);
freeMarkerManager.outputTemp(Tool.createFile(root.getAbsolutePath(), "WebMvcConfig.java"), "SpringBoot/java/config/WebMvcConfig.java", ctx); freeMarkerManager.outputTemp(Tool.createFile(root.getAbsolutePath(), "WebMvcConfig.java"), "SpringBoot/java/config/WebMvcConfig.java", ctx);
if (dataBase.name().equals(DataBase.SQLite.name())) { if (project.getDatabase().name().equals(DataBase.SQLite.name())) {
freeMarkerManager.outputTemp(Tool.createFile(root.getAbsolutePath(), "SQLiteConfig.java"), "SpringBoot/java/config/SQLiteConfig.java", ctx); freeMarkerManager.outputTemp(Tool.createFile(root.getAbsolutePath(), "SQLiteConfig.java"), "SpringBoot/java/config/SQLiteConfig.java", ctx);
} }
if (project.getMultiDB()) { if (project.isNeedMoreDB()) {
freeMarkerManager.outputTemp(Tool.createFile(root.getAbsolutePath(), "MapperMainConfig.java"), "SpringBoot/java/config/MapperMainConfig.java", ctx); freeMarkerManager.outputTemp(Tool.createFile(root.getAbsolutePath(), "MapperMainConfig.java"), "SpringBoot/java/config/MapperMainConfig.java", ctx);
freeMarkerManager.outputTemp(Tool.createFile(root.getAbsolutePath(), "MapperTwoConfig.java"), "SpringBoot/java/config/MapperTwoConfig.java", ctx); freeMarkerManager.outputTemp(Tool.createFile(root.getAbsolutePath(), "MapperTwoConfig.java"), "SpringBoot/java/config/MapperTwoConfig.java", ctx);
} }
@ -270,7 +267,7 @@ public class SpringBootCallable implements Callable {
* @param root * @param root
* @param md * @param md
*/ */
public void generateEntity(File root, Module md, DataBase dataBase) { public void generateEntity(File root, Module md) {
if (!root.exists()) { if (!root.exists()) {
root.mkdirs(); root.mkdirs();
} else { } else {
@ -297,7 +294,7 @@ public class SpringBootCallable implements Callable {
* @param root * @param root
* @param md * @param md
*/ */
public void generateMapper(File root, Module md, DataBase dataBase) { public void generateMapper(File root, Module md) {
if (!root.exists()) { if (!root.exists()) {
root.mkdirs(); root.mkdirs();
} else { } else {
@ -307,7 +304,7 @@ public class SpringBootCallable implements Callable {
ctx.put("tool", Tool.class); ctx.put("tool", Tool.class);
ctx.put("module", md); ctx.put("module", md);
ctx.put("dataBase", dataBase.toString()); ctx.put("dataBase", project.getDatabase().toString());
ctx.put("basePackage", md.getProjectBasePackage()); ctx.put("basePackage", md.getProjectBasePackage());
ctx.put("moduleName", md.getModuleName()); ctx.put("moduleName", md.getModuleName());
ctx.put("author", md.getProjectAuthor()); ctx.put("author", md.getProjectAuthor());
@ -319,14 +316,14 @@ public class SpringBootCallable implements Callable {
if (table.getSys()) { if (table.getSys()) {
// freeMarkerManager.outputTemp(Tool.createFile(root.getAbsolutePath(), dataBase.name() + "_" + Tool.lineToClassName(table.getTableName()) + "Mapper" + ".xml"), "SpringBoot/java/module/mpr/" + dataBase.name() + "_mapper.xml", ctx); // freeMarkerManager.outputTemp(Tool.createFile(root.getAbsolutePath(), dataBase.name() + "_" + Tool.lineToClassName(table.getTableName()) + "Mapper" + ".xml"), "SpringBoot/java/module/mpr/" + dataBase.name() + "_mapper.xml", ctx);
freeMarkerManager.outputTemp(Tool.createFile(root.getAbsolutePath(), Tool.lineToClassName(table.getTableName()) + "Mapper" + ".xml"), "SpringBoot/java/module/mpr/" + dataBase.name() + "_mapper.xml", ctx); freeMarkerManager.outputTemp(Tool.createFile(root.getAbsolutePath(), Tool.lineToClassName(table.getTableName()) + "Mapper" + ".xml"), "SpringBoot/java/module/mpr/" + project.getDatabase().name() + "_mapper.xml", ctx);
} else { } else {
freeMarkerManager.outputTemp(Tool.createFile(root.getAbsolutePath(), Tool.lineToClassName(table.getTableName()) + "Mapper" + ".xml"), "SpringBoot/java/module/mpr/Nosys_mapper.ftl", ctx); freeMarkerManager.outputTemp(Tool.createFile(root.getAbsolutePath(), Tool.lineToClassName(table.getTableName()) + "Mapper" + ".xml"), "SpringBoot/java/module/mpr/Nosys_mapper.ftl", ctx);
} }
} }
} }
public void generateManager(File root, Module md, DataBase dataBase) { public void generateManager(File root, Module md) {
if (!root.exists()) { if (!root.exists()) {
root.mkdirs(); root.mkdirs();
} else { } else {
@ -354,7 +351,7 @@ public class SpringBootCallable implements Callable {
* @param root * @param root
* @param md * @param md
*/ */
public void generateRequest(File root, Module md, DataBase dataBase) { public void generateRequest(File root, Module md) {
if (!root.exists()) { if (!root.exists()) {
root.mkdirs(); root.mkdirs();
} else { } else {
@ -408,7 +405,7 @@ public class SpringBootCallable implements Callable {
* @param root * @param root
* @param md * @param md
*/ */
public void generateResponse(File root, Module md, DataBase dataBase) { public void generateResponse(File root, Module md) {
if (!root.exists()) { if (!root.exists()) {
root.mkdirs(); root.mkdirs();
} else { } else {
@ -456,7 +453,7 @@ public class SpringBootCallable implements Callable {
} }
} }
public void generateSystemModule(File root, Module md, DataBase dataBase) { public void generateSystemModule(File root, Module md) {
File ent = Tool.createPath(root.getAbsolutePath(), "ent"); File ent = Tool.createPath(root.getAbsolutePath(), "ent");
File mpr = Tool.createPath(root.getAbsolutePath(), "mpr"); File mpr = Tool.createPath(root.getAbsolutePath(), "mpr");
File mgr = Tool.createPath(root.getAbsolutePath(), "mgr"); File mgr = Tool.createPath(root.getAbsolutePath(), "mgr");
@ -468,7 +465,7 @@ public class SpringBootCallable implements Callable {
ctx.put("moduleName", md.getModuleName()); ctx.put("moduleName", md.getModuleName());
ctx.put("author", md.getProjectAuthor()); ctx.put("author", md.getProjectAuthor());
ctx.put("date", new Date()); ctx.put("date", new Date());
ctx.put("dataBase", dataBase.toString()); ctx.put("dataBase", project.getDatabase().toString());
for (String name : ResourceUtil.getResourceFiles("/modules/SpringBoot/java/module/system/ent/")) { for (String name : ResourceUtil.getResourceFiles("/modules/SpringBoot/java/module/system/ent/")) {
freeMarkerManager.outputTemp(Tool.createFile(ent.getAbsolutePath(), name), "SpringBoot/java/module/system/ent/" + name, ctx); freeMarkerManager.outputTemp(Tool.createFile(ent.getAbsolutePath(), name), "SpringBoot/java/module/system/ent/" + name, ctx);
@ -481,10 +478,10 @@ public class SpringBootCallable implements Callable {
for (String name : ResourceUtil.getResourceFiles("/modules/SpringBoot/java/module/system/mpr/")) { for (String name : ResourceUtil.getResourceFiles("/modules/SpringBoot/java/module/system/mpr/")) {
if (name.endsWith(".java")) { if (name.endsWith(".java")) {
freeMarkerManager.outputTemp(Tool.createFile(mpr.getAbsolutePath(), name), "SpringBoot/java/module/system/mpr/" + name, ctx); freeMarkerManager.outputTemp(Tool.createFile(mpr.getAbsolutePath(), name), "SpringBoot/java/module/system/mpr/" + name, ctx);
} else if (name.contains(dataBase.name())) { } else if (name.contains(project.getDatabase().name())) {
//todo dateBase调试 //todo dateBase调试
// freeMarkerManager.outputTemp(Tool.createFile(mpr.getAbsolutePath(), name), "SpringBoot/java/module/system/mpr/" + name, ctx); // freeMarkerManager.outputTemp(Tool.createFile(mpr.getAbsolutePath(), name), "SpringBoot/java/module/system/mpr/" + name, ctx);
freeMarkerManager.outputTemp(Tool.createFile(mpr.getAbsolutePath(), name.replaceAll(dataBase.name() + "_", "")), "SpringBoot/java/module/system/mpr/" + name, ctx); freeMarkerManager.outputTemp(Tool.createFile(mpr.getAbsolutePath(), name.replaceAll(project.getDatabase().name() + "_", "")), "SpringBoot/java/module/system/mpr/" + name, ctx);
} }
} }
@ -503,7 +500,7 @@ public class SpringBootCallable implements Callable {
* @param root * @param root
* @param project * @param project
*/ */
public void generateFrame(File root, Project project, DataBase dataBase) { public void generateFrame(File root, Project project) {
if (!root.exists()) { if (!root.exists()) {
root.mkdirs(); root.mkdirs();
} else { } else {
@ -558,7 +555,16 @@ public class SpringBootCallable implements Callable {
} }
//utils //utils
for (String name : ResourceUtil.getResourceFiles("/modules/SpringBoot/java/frame/utils/")) { for (String name : ResourceUtil.getResourceFiles("/modules/SpringBoot/java/frame/utils/")) {
freeMarkerManager.outputTemp(Tool.createFile(utils.getAbsolutePath(), name), "SpringBoot/java/frame/utils/" + name, ctx); ArrayList<String> filters = new ArrayList<>();
filters.add("MailUtil.java");
if (filters.contains(name)) {
if (project.isNeedEMail()) {
freeMarkerManager.outputTemp(Tool.createFile(utils.getAbsolutePath(), name), "SpringBoot/java/frame/utils/" + name, ctx);
}
} else {
freeMarkerManager.outputTemp(Tool.createFile(utils.getAbsolutePath(), name), "SpringBoot/java/frame/utils/" + name, ctx);
}
} }
//validation //validation
@ -574,7 +580,7 @@ public class SpringBootCallable implements Callable {
* @param root * @param root
* @param project * @param project
*/ */
public void generateTask(File root, Project project, DataBase dataBase) { public void generateTask(File root, Project project) {
if (!root.exists()) { if (!root.exists()) {
root.mkdirs(); root.mkdirs();
} else { } else {
@ -597,14 +603,12 @@ public class SpringBootCallable implements Callable {
* @param root * @param root
* @param project * @param project
*/ */
public void generateApplication(File root, Project project, DataBase dataBase) { public void generateApplication(File root, Project project) {
HashMap<String, Object> ctx = new HashMap<String, Object>(); HashMap<String, Object> ctx = new HashMap<String, Object>();
ctx.put("basePackage", project.getProjectBasePackage()); ctx.put("basePackage", project.getProjectBasePackage());
ctx.put("moduleName", project.getProjectName()); ctx.put("moduleName", project.getProjectName());
ctx.put("multiDB", project.getMultiDB()); ctx.put("project", project);
ctx.put("timestamp", new Date().getTime()); ctx.put("timestamp", new Date().getTime());
freeMarkerManager.outputTemp(Tool.createFile(root.getAbsolutePath(), "Application.java"), "SpringBoot/java/Application.ftl", ctx); freeMarkerManager.outputTemp(Tool.createFile(root.getAbsolutePath(), "Application.java"), "SpringBoot/java/Application.ftl", ctx);
} }
@ -614,19 +618,18 @@ public class SpringBootCallable implements Callable {
* @param root * @param root
* @param project * @param project
*/ */
public void generateResources(File root, Project project, DataBase dataBase) { public void generateResources(File root, Project project) {
HashMap<String, Object> ctx = new HashMap<String, Object>(); HashMap<String, Object> ctx = new HashMap<String, Object>();
ctx.put("basePackage", project.getProjectBasePackage()); ctx.put("basePackage", project.getProjectBasePackage());
ctx.put("tool", Tool.class); ctx.put("tool", Tool.class);
ctx.put("dataBase", dataBase.toString()); ctx.put("dataBase", project.getDatabase().toString());
ctx.put("author", project.getProjectAuthor()); ctx.put("author", project.getProjectAuthor());
ctx.put("dBmapper", dBmapper); ctx.put("dBmapper", dBmapper);
ctx.put("date", new Date()); ctx.put("date", new Date());
ctx.put("author", project.getProjectAuthor()); ctx.put("author", project.getProjectAuthor());
ctx.put("projectName", project.getProjectName()); ctx.put("projectName", project.getProjectName());
ctx.put("multiDB", project.getMultiDB()); ctx.put("project", project);
ctx.put("cloud", cloud);
freeMarkerManager.outputTemp(Tool.createFile(root.getAbsolutePath(), "start-dev.bat"), "SpringBoot/resources/start-dev.bat", ctx); freeMarkerManager.outputTemp(Tool.createFile(root.getAbsolutePath(), "start-dev.bat"), "SpringBoot/resources/start-dev.bat", ctx);
freeMarkerManager.outputTemp(Tool.createFile(root.getAbsolutePath(), "start-prod.bat"), "SpringBoot/resources/start-prod.bat", ctx); freeMarkerManager.outputTemp(Tool.createFile(root.getAbsolutePath(), "start-prod.bat"), "SpringBoot/resources/start-prod.bat", ctx);
freeMarkerManager.outputTemp(Tool.createFile(root.getAbsolutePath(), "application-dev.properties"), "SpringBoot/resources/application-dev.ftl", ctx); freeMarkerManager.outputTemp(Tool.createFile(root.getAbsolutePath(), "application-dev.properties"), "SpringBoot/resources/application-dev.ftl", ctx);
@ -645,27 +648,27 @@ public class SpringBootCallable implements Callable {
File tableDir = Tool.createPath(dbtool.getAbsolutePath(), module.getModuleName() + "_table"); File tableDir = Tool.createPath(dbtool.getAbsolutePath(), module.getModuleName() + "_table");
for (Table table : module.getTables()) { for (Table table : module.getTables()) {
ctx.put("table", table); ctx.put("table", table);
freeMarkerManager.outputTemp(Tool.createFile(tableDir.getAbsolutePath(), dataBase.name() + "_" + table.getTableName() + ".sql"), "SpringBoot/resources/dbtool/table.ftl", ctx); freeMarkerManager.outputTemp(Tool.createFile(tableDir.getAbsolutePath(), project.getDatabase().name() + "_" + table.getTableName() + ".sql"), "SpringBoot/resources/dbtool/table.ftl", ctx);
} }
freeMarkerManager.outputTemp(Tool.createFile(tableDir.getAbsolutePath(), dataBase.name() + "_ALL_TABLE" + ".sql"), "SpringBoot/resources/dbtool/tableAll.ftl", ctx); freeMarkerManager.outputTemp(Tool.createFile(tableDir.getAbsolutePath(), project.getDatabase().name() + "_ALL_TABLE" + ".sql"), "SpringBoot/resources/dbtool/tableAll.ftl", ctx);
} }
if (project.getSysMD()) {//生成系统模块 if (project.isNeedSys()) {//生成系统模块
File system = Tool.createPath(dbtool.getAbsolutePath(), "system_table"); File system = Tool.createPath(dbtool.getAbsolutePath(), "system_table");
for (String name : ResourceUtil.getResourceFiles("/modules/SpringBoot/resources/dbtool/system/")) { for (String name : ResourceUtil.getResourceFiles("/modules/SpringBoot/resources/dbtool/system/")) {
if (name.contains(dataBase.name())) { if (name.contains(project.getDatabase().name())) {
freeMarkerManager.outputTemp(Tool.createFile(system.getAbsolutePath(), name), "SpringBoot/resources/dbtool/system/" + name, ctx); freeMarkerManager.outputTemp(Tool.createFile(system.getAbsolutePath(), name), "SpringBoot/resources/dbtool/system/" + name, ctx);
} }
} }
} }
if (DataBase.Oracle.name().equals(dataBase.name())) { if (DataBase.Oracle.name().equals(project.getDatabase().name())) {
File lib = Tool.createPath(root.getAbsolutePath(), "lib"); File lib = Tool.createPath(root.getAbsolutePath(), "lib");
Tool.outputResource("SpringBoot/resources/lib/ojdbc7-12.1.0.2.jar", Tool.createFile(lib.getAbsolutePath(), "ojdbc7-12.1.0.2.jar")); Tool.outputResource("SpringBoot/resources/lib/ojdbc7-12.1.0.2.jar", Tool.createFile(lib.getAbsolutePath(), "ojdbc7-12.1.0.2.jar"));
} }
if (DataBase.SQLite.name().equals(dataBase.name())) { if (DataBase.SQLite.name().equals(project.getDatabase().name())) {
File dbFile = Tool.createFile(root.getAbsolutePath(), project.getProjectName() + ".db"); File dbFile = Tool.createFile(root.getAbsolutePath(), project.getProjectName() + ".db");
Connection connection = null; Connection connection = null;
Statement statement = null; Statement statement = null;
@ -699,18 +702,17 @@ public class SpringBootCallable implements Callable {
} }
} }
public void generateTestResources(File root, Project project, DataBase dataBase) { public void generateTestResources(File root, Project project) {
HashMap<String, Object> ctx = new HashMap<String, Object>(); HashMap<String, Object> ctx = new HashMap<String, Object>();
ctx.put("basePackage", project.getProjectBasePackage()); ctx.put("basePackage", project.getProjectBasePackage());
ctx.put("projectName", project.getProjectName()); ctx.put("projectName", project.getProjectName());
ctx.put("tool", Tool.class); ctx.put("tool", Tool.class);
ctx.put("dataBase", dataBase.toString()); ctx.put("dataBase", project.getDatabase().toString());
ctx.put("author", project.getProjectAuthor()); ctx.put("author", project.getProjectAuthor());
ctx.put("dBmapper", dBmapper); ctx.put("dBmapper", dBmapper);
ctx.put("date", new Date()); ctx.put("date", new Date());
ctx.put("multiDB", project.getMultiDB()); ctx.put("project", project);
ctx.put("cloud", cloud);
freeMarkerManager.outputTemp(Tool.createFile(root.getAbsolutePath(), "application.properties"), "SpringBoot/test/application.ftl", ctx); freeMarkerManager.outputTemp(Tool.createFile(root.getAbsolutePath(), "application.properties"), "SpringBoot/test/application.ftl", ctx);
Tool.outputResource("SpringBoot/test/logback-spring.xml", Tool.createFile(root.getAbsolutePath(), "logback-spring.xml")); Tool.outputResource("SpringBoot/test/logback-spring.xml", Tool.createFile(root.getAbsolutePath(), "logback-spring.xml"));
} }
@ -721,7 +723,7 @@ public class SpringBootCallable implements Callable {
* @param root * @param root
* @param project * @param project
*/ */
public void generateStatic(File root, Project project, DataBase dataBase) { public void generateStatic(File root, Project project) {
HashMap<String, Object> ctx = new HashMap<String, Object>(); HashMap<String, Object> ctx = new HashMap<String, Object>();
ctx.put("basePackage", project.getProjectBasePackage()); ctx.put("basePackage", project.getProjectBasePackage());
@ -769,7 +771,7 @@ public class SpringBootCallable implements Callable {
* @param root * @param root
* @param project * @param project
*/ */
public void generateTemplates(File root, Project project, DataBase dataBase) { public void generateTemplates(File root, Project project) {
{//生成 {//生成
File templates = Tool.createPath(root.getAbsolutePath(), "templates"); File templates = Tool.createPath(root.getAbsolutePath(), "templates");
File control = Tool.createPath(templates.getAbsolutePath(), "control"); File control = Tool.createPath(templates.getAbsolutePath(), "control");
@ -791,7 +793,7 @@ public class SpringBootCallable implements Callable {
ctx.put("author", project.getProjectAuthor()); ctx.put("author", project.getProjectAuthor());
ctx.put("date", new Date()); ctx.put("date", new Date());
ctx.put("modules", project.getModules()); ctx.put("modules", project.getModules());
ctx.put("sysMD", project.getSysMD()); ctx.put("sysMD", project.isNeedSys());
freeMarkerManager.outputTemp(Tool.createFile(screen.getAbsolutePath(), "index.ftl"), "SpringBoot/resources/templates/screen/index.ftl", ctx); freeMarkerManager.outputTemp(Tool.createFile(screen.getAbsolutePath(), "index.ftl"), "SpringBoot/resources/templates/screen/index.ftl", ctx);
} }
@ -816,7 +818,7 @@ public class SpringBootCallable implements Callable {
} }
} }
if (project.getSysMD()) {//生成系统模块 if (project.isNeedSys()) {//生成系统模块
File system = Tool.createPath(screen.getAbsolutePath(), "system"); File system = Tool.createPath(screen.getAbsolutePath(), "system");
for (String name : ResourceUtil.getResourceFiles("/modules/SpringBoot/resources/templates/screen/module/system/")) { for (String name : ResourceUtil.getResourceFiles("/modules/SpringBoot/resources/templates/screen/module/system/")) {
Tool.outputResource("SpringBoot/resources/templates/screen/module/system/" + name, Tool.createFile(system.getAbsolutePath(), name)); Tool.outputResource("SpringBoot/resources/templates/screen/module/system/" + name, Tool.createFile(system.getAbsolutePath(), name));
@ -825,7 +827,7 @@ public class SpringBootCallable implements Callable {
} }
} }
public void generateTest(File root, Project project, DataBase dataBase) { public void generateTest(File root, Project project) {
{ {
File config = Tool.createPath(root.getAbsolutePath(), "config"); File config = Tool.createPath(root.getAbsolutePath(), "config");
@ -870,7 +872,7 @@ public class SpringBootCallable implements Callable {
} }
} }
if (project.getSysMD()) {//生成系统模块 if (project.isNeedSys()) {//生成系统模块
HashMap<String, Object> ctx = new HashMap<String, Object>(); HashMap<String, Object> ctx = new HashMap<String, Object>();
ctx.put("tool", Tool.class); ctx.put("tool", Tool.class);
ctx.put("basePackage", project.getProjectBasePackage()); ctx.put("basePackage", project.getProjectBasePackage());

@ -2,6 +2,7 @@ package xyz.wbsite.dbtool.javafx.po;
import javafx.scene.control.TreeItem; import javafx.scene.control.TreeItem;
import xyz.wbsite.dbtool.javafx.annotation.Property; import xyz.wbsite.dbtool.javafx.annotation.Property;
import xyz.wbsite.dbtool.javafx.enums.DataBase;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
@ -12,7 +13,6 @@ public class Project extends TreeItem {
this.projectName = "EXAMPLE-WEB"; this.projectName = "EXAMPLE-WEB";
this.projectBasePackage = "com.example"; this.projectBasePackage = "com.example";
this.projectAuthor = "author"; this.projectAuthor = "author";
this.multiDB = false;
} }
public Project(String projectName) { public Project(String projectName) {
@ -27,14 +27,16 @@ public class Project extends TreeItem {
private String projectBasePackage; private String projectBasePackage;
@Property("projectAuthor") @Property("projectAuthor")
private String projectAuthor; private String projectAuthor;
@Property("multiDB") @Property("needMoreDB")
private boolean multiDB; private boolean needMoreDB;
@Property("sysMD") @Property("needEMail")
private boolean sysMD; private boolean needEMail;
@Property("cloud") @Property("needSys")
private boolean cloud; private boolean needSys;
@Property(value = "database",defautValue = "MySQL") @Property("needCloud")
private String database; private boolean needCloud;
@Property(value = "database")
private DataBase database;
/** /**
* *
@ -80,35 +82,43 @@ public class Project extends TreeItem {
this.modules = modules; this.modules = modules;
} }
public boolean getMultiDB() { public boolean isNeedMoreDB() {
return multiDB; return needMoreDB;
} }
public void setMultiDB(boolean multiDB) { public void setNeedMoreDB(boolean needMoreDB) {
this.multiDB = multiDB; this.needMoreDB = needMoreDB;
} }
public boolean getSysMD() { public boolean isNeedSys() {
return sysMD; return needSys;
} }
public void setSysMD(boolean sysMD) { public void setNeedSys(boolean needSys) {
this.sysMD = sysMD; this.needSys = needSys;
} }
public boolean isCloud() { public boolean isNeedCloud() {
return cloud; return needCloud;
} }
public void setCloud(boolean cloud) { public void setNeedCloud(boolean needCloud) {
this.cloud = cloud; this.needCloud = needCloud;
} }
public String getDatabase() { public DataBase getDatabase() {
return database; return database;
} }
public void setDatabase(String database) { public void setDatabase(DataBase database) {
this.database = database; this.database = database;
} }
public boolean isNeedEMail() {
return needEMail;
}
public void setNeedEMail(boolean needEMail) {
this.needEMail = needEMail;
}
} }

@ -3,7 +3,7 @@ package ${basePackage};
import org.springframework.boot.SpringApplication; import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration; import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.autoconfigure.SpringBootApplication;
<#if multiDB> <#if project.needMoreDB>
import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration; import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
</#if> </#if>
import org.springframework.boot.builder.SpringApplicationBuilder; import org.springframework.boot.builder.SpringApplicationBuilder;
@ -11,7 +11,7 @@ import org.springframework.boot.web.servlet.support.SpringBootServletInitializer
import ${basePackage}.frame.auth.LocalData; import ${basePackage}.frame.auth.LocalData;
@SpringBootApplication @SpringBootApplication
<#if multiDB> <#if project.needMoreDB>
@EnableAutoConfiguration(exclude = {DataSourceAutoConfiguration.class}) @EnableAutoConfiguration(exclude = {DataSourceAutoConfiguration.class})
<#else> <#else>
@EnableAutoConfiguration @EnableAutoConfiguration

@ -67,7 +67,16 @@
<artifactId>spring-boot-starter-freemarker</artifactId> <artifactId>spring-boot-starter-freemarker</artifactId>
</dependency> </dependency>
<#if cloud> <#if project.needEMail>
<!-- mail 发送邮件 -->
<dependency>
<groupId>javax.mail</groupId>
<artifactId>mail</artifactId>
<version>1.4.7</version>
</dependency>
</#if>
<#if project.needCloud>
<!-- eureka-client --> <!-- eureka-client -->
<dependency> <dependency>
<groupId>org.springframework.cloud</groupId> <groupId>org.springframework.cloud</groupId>

@ -6,7 +6,7 @@ spring.resources.static-locations=classpath:/META-INF/resources/,classpath:/reso
spring.application.name=${projectName?default("SpringBoot")} spring.application.name=${projectName?default("SpringBoot")}
spring.main.banner-mode=CONSOLE spring.main.banner-mode=CONSOLE
spring.devtools.restart.enabled=true spring.devtools.restart.enabled=true
<#if cloud> <#if project.needCloud>
eureka.client.serviceUrl.defaultZone=http://localhost:18080/eureka/ eureka.client.serviceUrl.defaultZone=http://localhost:18080/eureka/
</#if> </#if>
# 编码配置 # 编码配置
@ -17,7 +17,7 @@ server.tomcat.uri-encoding=UTF-8
# 日志配置 # 日志配置
logging.path=D:// logging.path=D://
logging.levels=DEBUG logging.levels=DEBUG
<#if multiDB> <#if project.needMoreDB>
# ================================================================================== # ==================================================================================
<#if dataBase == 'Oracle'> <#if dataBase == 'Oracle'>
# 主数据库 # 主数据库

@ -6,7 +6,7 @@ spring.resources.static-locations=classpath:/META-INF/resources/,classpath:/reso
spring.application.name=${projectName} spring.application.name=${projectName}
spring.main.banner-mode=off spring.main.banner-mode=off
spring.devtools.restart.enabled=false spring.devtools.restart.enabled=false
<#if cloud> <#if project.needCloud>
eureka.client.serviceUrl.defaultZone=http://localhost:18080/eureka/ eureka.client.serviceUrl.defaultZone=http://localhost:18080/eureka/
</#if> </#if>
# 编码配置 # 编码配置
@ -17,7 +17,7 @@ server.tomcat.uri-encoding=UTF-8
# 日志配置 # 日志配置
logging.path=/root/ logging.path=/root/
logging.levels=INFO logging.levels=INFO
<#if multiDB> <#if project.needMoreDB>
# ================================================================================== # ==================================================================================
<#if dataBase == 'Oracle'> <#if dataBase == 'Oracle'>
# 主数据库 # 主数据库

@ -6,7 +6,7 @@ spring.resources.static-locations=classpath:/META-INF/resources/,classpath:/reso
spring.application.name=${projectName?default("SpringBoot")} spring.application.name=${projectName?default("SpringBoot")}
spring.main.banner-mode=CONSOLE spring.main.banner-mode=CONSOLE
spring.devtools.restart.enabled=true spring.devtools.restart.enabled=true
<#if cloud> <#if project.needCloud>
eureka.client.serviceUrl.defaultZone=http://localhost:18080/eureka/ eureka.client.serviceUrl.defaultZone=http://localhost:18080/eureka/
</#if> </#if>
# 编码配置 # 编码配置
@ -17,7 +17,7 @@ server.tomcat.uri-encoding=UTF-8
# 日志配置 # 日志配置
logging.path=D:// logging.path=D://
logging.levels=DEBUG logging.levels=DEBUG
<#if multiDB> <#if project.needMoreDB>
# ================================================================================== # ==================================================================================
<#if dataBase == 'Oracle'> <#if dataBase == 'Oracle'>
# 主数据库 # 主数据库

Loading…
Cancel
Save

Powered by TurnKey Linux.