# jpa-auto-code **Repository Path**: askajohnny/jpa-auto-code ## Basic Information - **Project Name**: jpa-auto-code - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 4 - **Forks**: 3 - **Created**: 2021-09-28 - **Last Updated**: 2024-04-20 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # jpa-auto-code > 自动生成 以 jpa+querydsl 的代码模板 ,生成Entity,Vo,Service,Controller 等等。 **通过配置 数据源 + 表,来生成对应的代码** ### 1.TemplateCodeGenerator 自动代码main > 自动生成业务代码 主入口 #### 1.1 更改作者 ```java globalConfig .setAuthor("Johnny") // 设置作者 ``` #### 1.2 更改生成的文件路径 ```java globalConfig .setOutputDir( "/Users/johnny/atw-project/auto-code/backend-server/src/main/java") // 生成文件的路径 ``` #### 1.3 数据源配置 > 直接配置 需要通过 ```java DataSourceConfig dataSourceConfig = new DataSourceConfig(); dataSourceConfig .setDbType(DbType.MYSQL) .setUrl( "jdbc:mysql://192.168.15.46:3306/mes_manufacturing_manager?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai") .setDriverName("com.mysql.jdbc.Driver") .setUsername("root") .setPassword("123456"); ``` #### 1.4 根据指定的表生成代码 ```java strategyConfig .setCapitalMode(true) // 全局大写 .setNaming(NamingStrategy.underline_to_camel) // 数据库表映射到实体的命名策略 .setEntityTableFieldAnnotationEnable(true) // 是否全部生成@TableField注释 // .setExclude("user") // 排除某一个表 .setInclude("in_process_data", "code_info") ``` #### 1.5 指定父包路径 > 正常可以不用修改 ```java packageConfig .setParent("com.weareint.biz") ``` #### 1.6 指定模块module > 可以把表进行 归类为某个业务模块, 可以不输入 ```java String module = ".progress"; ``` ![image-20210928142254747](https://cdn.askajohnny.com/image-20210928142254747.png) #### 1.7 指定模板 > 模板在 resources 下面 可以进行自定义修改 ```java templateConfig .setController("/templates/vms/JPAController.java") .setServiceImpl("/templates/vms/JPAServiceImpl.java") .setService("/templates/vms/JPAService.java") .setEntity("/templates/vms/JPAEntity.java") //JPA 不生成 mapper .setMapper(null) //JPA 不生成 xml .setXml(null); ``` ### 2.第一次需要 编译代码,并且指定源文件 > 在终端中输入,进行编译,需要生成对应的Q文件 ```shell mvn clean compile -DskipTest ``` **如果编译不通过,第一次 需要指定生成的Q文件 为 java 源码文件 重要!!!** ![image-20210928142853121](https://cdn.askajohnny.com/image-20210928142853121.png) ![image-20210928142911544](https://cdn.askajohnny.com/image-20210928142911544.png) ### 3.扩展 生成common 中的jpabase (可忽略) > 默认已经生成过了,并且放到了common 中,不需要打开注释 会自动生成 BaseEntity、BaseVo、PageVo、等等。。 ```java fileOutConfigs.add(new FileOutConfig("/templates/basevms/BaseEntity.java.vm") { @Override public String outputFile(TableInfo tableInfo) { return globalConfig.getOutputDir() + "/" + packageConfig.getParent().replaceAll("\\.", "/") + "/jpabase/" + "BaseEntity.java"; } }); //JpaAuditorAware fileOutConfigs.add(new FileOutConfig("/templates/vms/JpaAuditorAware.java.vm") { @Override public String outputFile(TableInfo tableInfo) { return globalConfig.getOutputDir() + "/" + packageConfig.getParent().replaceAll("\\.", "/") + "/jpabase/" + "JpaAuditorAware.java"; } }); //baseVo fileOutConfigs.add(new FileOutConfig("/templates/basevms/BaseVo.java.vm") { @Override public String outputFile(TableInfo tableInfo) { return globalConfig.getOutputDir() + "/" + packageConfig.getParent().replaceAll("\\.", "/") + "/jpabase/" + "BaseVo.java"; } }); PageVo fileOutConfigs.add(new FileOutConfig("/templates/basevms/PageVo.java.vm") { @Override public String outputFile(TableInfo tableInfo) { return globalConfig.getOutputDir() + "/" + packageConfig.getParent().replaceAll("\\.", "/") + "/jpabase/" + module.replace(".", "") + "/" + "PageVo.java"; } }); //PageUtil fileOutConfigs.add(new FileOutConfig("/templates/basevms/PageUtil.java.vm") { @Override public String outputFile(TableInfo tableInfo) { return globalConfig.getOutputDir() + "/" + packageConfig.getParent().replaceAll("\\.", "/") + "/jpabase/" + module.replace(".", "") + "/" + "PageUtil.java"; } }); //ResultVo fileOutConfigs.add(new FileOutConfig("/templates/basevms/ResultVo.java.vm") { @Override public String outputFile(TableInfo tableInfo) { return globalConfig.getOutputDir() + "/" + packageConfig.getParent().replaceAll("\\.", "/") + "/jpabase/" + module.replace(".", "") + "/" + "ResultVo.java"; } }); //ResultVoUtil fileOutConfigs.add(new FileOutConfig("/templates/basevms/ResultVoUtil.java.vm") { @Override public String outputFile(TableInfo tableInfo) { return globalConfig.getOutputDir() + "/" + packageConfig.getParent().replaceAll("\\.", "/") + "/jpabase/" + module.replace(".", "") + "/" + "ResultVoUtil.java"; } }); //BaseService fileOutConfigs.add(new FileOutConfig("/templates/basevms/BaseService.java.vm") { @Override public String outputFile(TableInfo tableInfo) { return globalConfig.getOutputDir() + "/" + packageConfig.getParent().replaceAll("\\.", "/") + "/jpabase/" + module.replace(".", "") + "/" + "BaseService.java"; } }); //ConditionService fileOutConfigs.add(new FileOutConfig("/templates/basevms/ConditionService.java.vm") { @Override public String outputFile(TableInfo tableInfo) { return globalConfig.getOutputDir() + "/" + packageConfig.getParent().replaceAll("\\.", "/") + "/jpabase/" + module.replace(".", "") + "/" + "ConditionService.java"; } }); //QueryCondition fileOutConfigs.add(new FileOutConfig("/templates/basevms/QueryCondition.java.vm") { @Override public String outputFile(TableInfo tableInfo) { return globalConfig.getOutputDir() + "/" + packageConfig.getParent().replaceAll("\\.", "/") + "/jpabase/" + module.replace(".", "") + "/" + "QueryCondition.java"; } }); fileOutConfigs.add(new FileOutConfig("/templates/exceptionvms/BaseErrorInterface.java.vm") { @Override public String outputFile(TableInfo tableInfo) { return globalConfig.getOutputDir() + "/" + packageConfig.getParent().replaceAll("\\.", "/") + "/exception/" + module.replace(".", "") + "/" + "BaseErrorInterface.java"; } }); fileOutConfigs.add(new FileOutConfig("/templates/exceptionvms/BizException.java.vm") { @Override public String outputFile(TableInfo tableInfo) { return globalConfig.getOutputDir() + "/" + packageConfig.getParent().replaceAll("\\.", "/") + "/exception/" + module.replace(".", "") + "/" + "BizException.java"; } }); fileOutConfigs.add(new FileOutConfig("/templates/exceptionvms/ExceptionEnum.java.vm") { @Override public String outputFile(TableInfo tableInfo) { return globalConfig.getOutputDir() + "/" + packageConfig.getParent().replaceAll("\\.", "/") + "/exception/" + module.replace(".", "") + "/" + "ExceptionEnum.java"; } }); ```