CodeGenerator.java 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126
  1. package com.huimv.produce.service;
  2. /**
  3. * @Project :
  4. * @Package :
  5. * @Description : TODO
  6. * @Version : 1.0
  7. * @Author : ZhuoNing
  8. * @Create :
  9. **/
  10. import com.baomidou.mybatisplus.annotation.IdType;
  11. import com.baomidou.mybatisplus.core.exceptions.MybatisPlusException;
  12. import com.baomidou.mybatisplus.generator.AutoGenerator;
  13. import com.baomidou.mybatisplus.generator.config.DataSourceConfig;
  14. import com.baomidou.mybatisplus.generator.config.GlobalConfig;
  15. import com.baomidou.mybatisplus.generator.config.PackageConfig;
  16. import com.baomidou.mybatisplus.generator.config.StrategyConfig;
  17. import com.baomidou.mybatisplus.generator.config.rules.DateType;
  18. import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
  19. import org.apache.commons.lang.StringUtils;
  20. import java.util.Scanner;
  21. public class CodeGenerator {
  22. // user defined
  23. private static String childProjectPath = "/huimv-farm-produce";
  24. private static String rootPackage = "com.huimv.produce.produce";
  25. private static String dbIp = "192.168.1.7";
  26. private static String dbPort = "3306";
  27. private static String dbName = "huimv-lishui";
  28. private static String driverName = "com.mysql.cj.jdbc.Driver";
  29. private static String username = "root";
  30. private static String password = "hm123456";
  31. public static String scanner(String tip) {
  32. Scanner scanner = new Scanner(System.in);
  33. StringBuilder help = new StringBuilder();
  34. help.append("请输入" + tip + ":");
  35. System.out.println(help.toString());
  36. if (scanner.hasNext()) {
  37. String ipt = scanner.next();
  38. if (StringUtils.isNotBlank(ipt)) {
  39. return ipt;
  40. }
  41. }
  42. throw new MybatisPlusException("请输入正确的" + tip + "!");
  43. }
  44. public static void main(String[] args) {
  45. // 代码生成器
  46. AutoGenerator mpg = new AutoGenerator();
  47. // 全局配置
  48. GlobalConfig gc = new GlobalConfig();
  49. String rootPath = System.getProperty("user.dir");
  50. System.out.println("rootPath + childProjectPath="+rootPath + childProjectPath);
  51. gc.setOutputDir(rootPath + childProjectPath + "/src/main/java");//设置代码生成路径
  52. gc.setFileOverride(true);//是否覆盖以前文件
  53. gc.setOpen(false);//是否打开生成目录
  54. gc.setAuthor("zn");//设置项目作者名称
  55. gc.setIdType(IdType.AUTO);//设置主键策略
  56. gc.setBaseResultMap(true);//生成基本ResultMap
  57. gc.setBaseColumnList(true);//生成基本ColumnList
  58. gc.setServiceName("%sService");//去掉服务默认前缀
  59. gc.setDateType(DateType.ONLY_DATE);//设置时间类型
  60. mpg.setGlobalConfig(gc);
  61. // 数据源配置
  62. DataSourceConfig dsc = new DataSourceConfig();
  63. String url = "jdbc:mysql://"+dbIp+":"+dbPort+"/"+dbName+"?useUnicode=true&characterEncoding=UTF-8&useSSL=false&autoReconnect=true&serverTimezone=Asia/Shanghai";
  64. System.out.println("url="+url);
  65. System.out.println("driverName="+driverName);
  66. System.out.println("username="+username);
  67. System.out.println("password="+password);
  68. dsc.setUrl(url);
  69. dsc.setDriverName(driverName);
  70. dsc.setUsername(username);
  71. dsc.setPassword(password);
  72. mpg.setDataSource(dsc);
  73. // 包配置
  74. PackageConfig pc = new PackageConfig();
  75. pc.setParent(rootPackage);
  76. pc.setMapper("mapper");
  77. pc.setXml("mapper.xml");
  78. // pc.setEntity("pojo");
  79. pc.setEntity("entity");
  80. pc.setService("service");
  81. pc.setServiceImpl("service.impl");
  82. pc.setController("controller");
  83. mpg.setPackageInfo(pc);
  84. // 策略配置
  85. StrategyConfig sc = new StrategyConfig();
  86. sc.setNaming(NamingStrategy.underline_to_camel);
  87. sc.setColumnNaming(NamingStrategy.underline_to_camel);
  88. sc.setEntityLombokModel(true);//自动lombok
  89. sc.setRestControllerStyle(true);
  90. sc.setControllerMappingHyphenStyle(true);
  91. sc.setLogicDeleteFieldName("deleted");//设置逻辑删除
  92. //设置自动填充配置
  93. // TableFill gmt_create = new TableFill("create_time", FieldFill.INSERT);
  94. // TableFill gmt_modified = new TableFill("update_time", FieldFill.INSERT_UPDATE);
  95. // ArrayList<TableFill> tableFills=new ArrayList<>();
  96. // tableFills.add(gmt_create);
  97. // tableFills.add(gmt_modified);
  98. // sc.setTableFillList(tableFills);
  99. //乐观锁
  100. sc.setVersionFieldName("version");
  101. sc.setRestControllerStyle(true);//驼峰命名
  102. // sc.setTablePrefix("tbl_"); 设置表名前缀
  103. sc.setInclude(scanner("表名,多个英文逗号分割").split(","));
  104. mpg.setStrategy(sc);
  105. // 生成代码
  106. mpg.execute();
  107. }
  108. }