GenList.java 2.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. package com.izouma.codegenerator;
  2. import com.izouma.awesomeadmin.model.GenCode;
  3. import com.izouma.awesomeadmin.model.TableField;
  4. import org.apache.commons.text.CaseUtils;
  5. import org.apache.velocity.Template;
  6. import org.apache.velocity.VelocityContext;
  7. import org.apache.velocity.app.Velocity;
  8. import org.apache.velocity.tools.ToolManager;
  9. import java.io.BufferedWriter;
  10. import java.io.File;
  11. import java.io.FileOutputStream;
  12. import java.io.OutputStreamWriter;
  13. import java.util.*;
  14. public class GenList {
  15. public static void main(String[] args) {
  16. try {
  17. Set<String> imports = new HashSet<>();
  18. TableField field1 = new TableField();
  19. field1.setName("aaaBbbb");
  20. field1.setJdbcType("int");
  21. field1.setJavaType("Integer");
  22. field1.setPrimaryKey(true);
  23. field1.setShowInList(true);
  24. field1.setShowInForm(true);
  25. TableField field2 = new TableField();
  26. field2.setName("cccDdd");
  27. field2.setJdbcType("varchar");
  28. field2.setJavaType("String");
  29. field2.setShowInList(true);
  30. field2.setShowInForm(true);
  31. GenCode model = new GenCode();
  32. model.setTableName("test_gen");
  33. model.setClassName(CaseUtils.toCamelCase(model.getTableName(), true, '_'));
  34. List<TableField> fields = new ArrayList<>();
  35. fields.add(field1);
  36. fields.add(field2);
  37. model.setFields(fields);
  38. model.setPrimaryField(field1);
  39. Properties pro = new Properties();
  40. pro.setProperty(Velocity.INPUT_ENCODING, "UTF-8");
  41. pro.setProperty(Velocity.FILE_RESOURCE_LOADER_PATH, "/Users/xiongzhu/Projects/Java/awesomeAdmin/src/main/java/com/izouma/ModelGenerator/templates");
  42. Velocity.init(pro);
  43. ToolManager manager = new ToolManager(true, true);
  44. VelocityContext context = new VelocityContext(manager.createContext());
  45. context.put("imports", imports);
  46. context.put("model", model);
  47. Template t = Velocity.getTemplate("listTemplate.vm");
  48. String targetFile = "TestGenList.vue";
  49. File file = new File("src/main/vue/src/pages", targetFile);
  50. if (!file.getParentFile().exists())
  51. file.getParentFile().mkdirs();
  52. if (!file.exists())
  53. file.createNewFile();
  54. FileOutputStream outStream = new FileOutputStream(file);
  55. OutputStreamWriter writer = new OutputStreamWriter(outStream,
  56. "UTF-8");
  57. BufferedWriter sw = new BufferedWriter(writer);
  58. t.merge(context, sw);
  59. sw.flush();
  60. sw.close();
  61. outStream.close();
  62. System.out.println("成功生成vue文件:");
  63. } catch (Exception e) {
  64. e.printStackTrace();
  65. }
  66. }
  67. }