Java基本代码生成器

根据数据库表自动生成基本代码

1.导入相关依赖

 		<dependency><groupId>com.baomidougroupId><artifactId>mybatis-plus-generatorartifactId><version>3.4.0version>dependency><dependency><groupId>org.apache.velocitygroupId><artifactId>velocity-engine-coreartifactId><version>2.3version>dependency><dependency><groupId>org.freemarkergroupId><artifactId>freemarkerartifactId><version>2.3.30version>dependency>

2.创建一个类,执行其中的main方法,即可生成对应的代码

public class MybatisPlusCodeGenerator {// ================= 自定义配置  =================//数据库类型private static final DbType DB_TYPE = DbType.MYSQL;//数据库连接地址private static final String JDBC_URL = "jdbc:mysql://localhost:3306/user?serverTimezone=UTC&useUnicode=true&characterEncoding=UTF-8";//数据库驱动private static final String JDBC_DRIVER = "com.mysql.cj.jdbc.Driver";//数据库用户名private static final String JDBC_USERNAME = "root";//数据库密码private static final String JDBC_PASSWORD = "root";/*** 生成文件根目录及包名*/// private static final String ROOT_DIR =System.getProperty("user.dir")+ "/src/main/java";// System.getProperty("user.dir") 当前的工程路径private static final String ROOT_DIR = System.getProperty("user.dir")+"/cc_service/order-service/src/main/java";//java文件夹下路径//生成的父包名private static final String PACKAGE_PARENT_NAME = "com.cc.mybatisplusCodegenerator";private static final String PACKAGE_CONTROLLER_NAME = "controller";private static final String PACKAGE_SERVICE_NAME = "service";private static final String PACKAGE_SERVICEIMPL_NAME = "service.impl";// entityprivate static final String PACKAGE_ENTITY_NAME = "domain";private static final String PACKAGE_MAPPER_NAME = "mapper";// 换成自己的中文路径private static final String RESOURCES_DIR = System.getProperty("user.dir")+"/cc_service/order-service/src/main/java";private static final String MAPPER_XML_PATH = PACKAGE_PARENT_NAME.replace(".", "/") + "/mapper/xml";/*** 生成代码的@author*/private static final String AUTHOR = "爪哇cc";/*** 需要生成代码的数据库表名*/private static final String[] TABLES = new String[]{"ap_user"};/*** 数据库表名前缀*/private static final String[] TABLE_PREFIXS = new String[]{"ap_"};public static void main(String[] args) {AutoGenerator mpg = new AutoGenerator();mpg.setDataSource(getDataSourceConfig());mpg.setGlobalConfig(getGlobalConfig());mpg.setStrategy(getStrategyConfig());mpg.setPackageInfo(getPackageConfig());mpg.setCfg(getInjectionConfig());mpg.setTemplate(getTemplateConfig());//设置模板引擎//mpg.setTemplateEngine(new FreemarkerTemplateEngine());// 执行生成mpg.execute();}/*** 数据源配置** @return*/private static DataSourceConfig getDataSourceConfig() {DataSourceConfig dsc = new DataSourceConfig();dsc.setDbType(DB_TYPE);dsc.setDriverName(JDBC_DRIVER);dsc.setUrl(JDBC_URL);dsc.setUsername(JDBC_USERNAME);dsc.setPassword(JDBC_PASSWORD);return dsc;}/*** 全局配置** @return*/private static GlobalConfig getGlobalConfig() {GlobalConfig gc = new GlobalConfig();//生成后是否打开资源管理器gc.setOpen(false);gc.setOutputDir(ROOT_DIR);//重新生成时文件是否覆盖gc.setFileOverride(true);gc.setActiveRecord(true);//主键策略gc.setIdType(IdType.AUTO);//定义生成的实体类中日期类型gc.setDateType(DateType.ONLY_DATE);//开启Swagger2模式gc.setSwagger2(false);// XML 二级缓存gc.setEnableCache(false);// XML ResultMapgc.setBaseResultMap(true);// XML columListgc.setBaseColumnList(true);gc.setAuthor(AUTHOR);gc.setMapperName("%sMapper");gc.setXmlName("%sMapper");gc.setServiceName("%sService");gc.setServiceImplName("%sServiceImpl");gc.setControllerName("%sController");return gc;}/*** 生成策略配置** @return*/private static StrategyConfig getStrategyConfig() {StrategyConfig strategy = new StrategyConfig();// 此处可以修改为您的表前缀strategy.setTablePrefix(TABLE_PREFIXS);// 表名生成策略strategy.setNaming(NamingStrategy.underline_to_camel);// 需要生成的表strategy.setInclude(TABLES);// lombok 模型 @Accessors(chain = true) setter链式操作strategy.setEntityLombokModel(true);//restful api风格控制器strategy.setRestControllerStyle(true);//url中驼峰转连字符strategy.setControllerMappingHyphenStyle(true);//生成TableFiled注解strategy.setEntityTableFieldAnnotationEnable(true);return strategy;}/*** 生成包名设置** @return*/private static PackageConfig getPackageConfig() {// 4.生成文件所在包配置:PackageConfig pc = new PackageConfig();pc.setParent(PACKAGE_PARENT_NAME);pc.setController(PACKAGE_CONTROLLER_NAME);pc.setService(PACKAGE_SERVICE_NAME);pc.setServiceImpl(PACKAGE_SERVICEIMPL_NAME);pc.setEntity(PACKAGE_ENTITY_NAME);pc.setMapper(PACKAGE_MAPPER_NAME);return pc;}/*** xml文件配置** @return*/private static InjectionConfig getInjectionConfig() {InjectionConfig cfg = new InjectionConfig() {@Overridepublic void initMap() {Map<String, Object> map = new HashMap<String, Object>();map.put("abc", this.getConfig().getGlobalConfig().getAuthor() + "-rb");this.setMap(map);}};//xml生成路径List<FileOutConfig> focList = new ArrayList<>();// 如果模板引擎是 freemarker// String templatePath = "/templates/mapper.xml.ftl";// 如果模板引擎是 velocity// String templatePath = "/templates/mapper.xml.vm";focList.add(new FileOutConfig("/templates/mapper.xml.vm") {@Overridepublic String outputFile(TableInfo tableInfo) {return RESOURCES_DIR + "/" + MAPPER_XML_PATH + "/" + tableInfo.getEntityName() + "Mapper.xml";}});cfg.setFileOutConfigList(focList);return cfg;}/*** 关闭默认 xml 生成** @return*/private static TemplateConfig getTemplateConfig() {TemplateConfig tc = new TemplateConfig();tc.setXml(null);return tc;}
}


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部