作者:小嘿嘿 | 来源:互联网 | 2023-09-02 11:29
自动生成代码publicclassGeneratorCodeConfig{privatestaticfinalStringURLjdbc:mysql:127.0.0.1:330
自动生成代码
public class GeneratorCodeConfig {private static final String URL &#61; "jdbc:mysql://127.0.0.1:3306/kyx?serverTimezone&#61;UTC&useUnicode&#61;true&characterEncoding&#61;utf-8&zeroDateTimeBehavior&#61;convertToNull&useSSL&#61;false&allowPublicKeyRetrieval&#61;true";private static final String USERNAME &#61; "root";private static final String PASSWORD &#61; "123456";public static String scanner(String tip) {Scanner scanner &#61; new Scanner(System.in);System.out.println("请输入" &#43; tip &#43; "&#xff1a;");if (scanner.hasNext()) {String ipt &#61; scanner.next();if (StringUtils.isNotEmpty(ipt)) {return ipt;}}throw new MybatisPlusException("请输入正确的" &#43; tip &#43; "&#xff01;");}public static void main(String[] args) {AutoGenerator mpg &#61; new AutoGenerator();GlobalConfig gc &#61; new GlobalConfig();String projectPath &#61; System.getProperty("user.dir");gc.setOutputDir(projectPath &#43; "/src/main/java");gc.setAuthor("xyang");gc.setOpen(false);gc.setSwagger2(false);gc.setActiveRecord(true);gc.setEnableCache(false);gc.setBaseResultMap(true);gc.setBaseColumnList(true);mpg.setGlobalConfig(gc);DataSourceConfig dsc &#61; new DataSourceConfig();dsc.setUrl(URL);dsc.setDriverName("com.mysql.cj.jdbc.Driver");dsc.setUsername(USERNAME);dsc.setPassword(PASSWORD);mpg.setDataSource(dsc);PackageConfig pc &#61; new PackageConfig();pc.setModuleName(scanner("模块名"));pc.setParent("com.kyx.orderSys.biz");pc.setEntity("model");pc.setMapper("mapper");pc.setService("service");pc.setServiceImpl("service.impl");mpg.setPackageInfo(pc);InjectionConfig cfg &#61; new InjectionConfig() {&#64;Overridepublic void initMap() {}};String templatePath &#61; "/templates/mapper.xml.ftl";List<FileOutConfig> focList &#61; new ArrayList<>();focList.add(new FileOutConfig(templatePath) {&#64;Overridepublic String outputFile(TableInfo tableInfo) {return projectPath &#43; "/src/main/resources/mapper/" &#43; pc.getModuleName()&#43; "/" &#43; tableInfo.getEntityName() &#43; "Mapper" &#43; StringPool.DOT_XML;}});cfg.setFileOutConfigList(focList);mpg.setCfg(cfg);TemplateConfig templateConfig &#61; new TemplateConfig();templateConfig.setXml(null);mpg.setTemplate(templateConfig);StrategyConfig strategy &#61; new StrategyConfig();strategy.setNaming(NamingStrategy.underline_to_camel);strategy.setColumnNaming(NamingStrategy.underline_to_camel);strategy.setSuperEntityClass(Model.class);strategy.setEntityLombokModel(true);strategy.setRestControllerStyle(true);strategy.setEntityLombokModel(true);strategy.setSuperControllerClass(BaseController.class);String[] split &#61; scanner("表名&#xff0c;多个英文逗号分割").split(",");strategy.setInclude(Arrays.stream(split).map(i -> pc.getModuleName() &#43; "_" &#43; i).toArray(String[]::new));strategy.setControllerMappingHyphenStyle(true);strategy.setTablePrefix(pc.getModuleName() &#43; "_");mpg.setStrategy(strategy);mpg.setTemplateEngine(new FreemarkerTemplateEngine());mpg.execute();}
}
默认生成日期格式为 LocalDateTime 和 LocalDate
&#64;Data
&#64;EqualsAndHashCode(callSuper &#61; true)
&#64;TableName("sys_user")
public class User extends Model<User> {private static final long serialVersionUID &#61; 1L;&#64;TableId(value &#61; "id", type &#61; IdType.AUTO)private Long id;private LocalDateTime createTime;private Boolean deleted;private LocalDateTime updateTime;}
可在 GeneratorCodeConfig 类中添加设置 gc.setDateType(DateType.ONLY_DATE); 已实现 Date 类型. 添加后生成的实体类如下所示
&#64;Data
&#64;EqualsAndHashCode(callSuper &#61; true)
&#64;TableName("sys_user")
public class User extends Model<User> {private static final long serialVersionUID &#61; 1L;&#64;TableId(value &#61; "id", type &#61; IdType.AUTO)private Long id;private Date createTime;private Boolean deleted;private Date updateTime;}
可添加注解来实现前后端日期格式的转换
&#64;Data
&#64;EqualsAndHashCode(callSuper &#61; true)
&#64;TableName("sys_user")
public class User extends Model<User> {private static final long serialVersionUID &#61; 1L;&#64;TableId(value &#61; "id", type &#61; IdType.AUTO)private Long id;&#64;JsonFormat(pattern &#61; "yyyy-MM-dd HH:mm:ss", timezone&#61;"GMT&#43;8")private Date createTime;private Boolean deleted;&#64;JsonFormat(pattern &#61; "yyyy-MM-dd HH:mm:ss", timezone&#61;"GMT&#43;8")private Date updateTime;}