MP 代码生成器工具类(magicalcoder的代码生成器)

  本篇文章为你整理了MP 代码生成器工具类(magicalcoder的代码生成器)的详细内容,包含有mp3代码 magicalcoder的代码生成器 代码生成工具下载 代码生成器原理 MP 代码生成器工具类,希望能帮助你了解 MP 代码生成器工具类。

   public static void main(String[] args) {

  // String parentPath = System.getProperty("user.dir"); // 如果工程就一个模块只设置 parentName

   String parentPath = "E:\\xxx\\xxx\\"; // 如果工程就一个模块只设置 parentName

   String submoduleName = "test"; // 如果有子模块还需设置 submoduleName 一般针对一个模块的表

   String generatingPath = "com.cnda.server"; // 逆向生成的代码的根路径

  
* -- 生成基本的resultMap

   * -- 生成基本的SQL片段,也就是xml文件中的sql标签,包含了表中的字段名

  
.setAuthor("cnda")

   // 是否支持AR模式:AR 模式相对于原始的 MP 模式来说,可以通过 pojo 实体类(继承了 Model 类)

   // 直接操作数据库。但是底层任然是使用 mapper 进行操作。

   // .setActiveRecord(true)

   // 生成路径:项目地址 + 模块地址,一般情况下

   .setOutputDir(parentPath + "/"+ submoduleName+"/src/main/java")

   // 文件覆盖

   //.setFileOverride(false)

   // 打开输出目录

   .setOpen(false)

   // 主键策略

   .setIdType(IdType.AUTO)

   // 设置日期格式

   //.setDateType(DateType.ONLY_DATE)

   // 设置生成的service接口的名字的首字母是否为I,默认Service是以I开头的

   .setServiceName("%sService")

   //生成基本的resultMap

   .setBaseResultMap(true)

   // 实体属性 swagger2 注解

   //.setSwagger2(true)

   //生成基本的SQL片段

   .setBaseColumnList(true);

   //2. 数据源配置

   * DataSourceConfig的主要属性配置

   * 此处为MP连接数据库读取数据库中表的属性和字段名,帮我们自动生成项目结构和数据库中表对应的实体类

   * -- 数据库类型

   DataSourceConfig dsConfig = new DataSourceConfig();

   // 设置数据库类型

   dsConfig//.setDbType(DbType.MYSQL)

   .setDriverName("com.mysql.cj.jdbc.Driver")

   .setUrl("jdbc:mysql://localhost:3306/yeb?useUnicode=true characterEncoding=UTF-8 serverTimezone=Asia/Shanghai")

   .setUsername("root")

   .setPassword("root");

   // 自定义配置

   InjectionConfig cfg = new InjectionConfig() {

   @Override

   public void initMap() {

   // 如果模板引擎是 freemarker

   String templatePath = "/templates/mapper.xml.ftl";

   // 通过模板引擎是 velocity

   // String templatePath = "/templates/mapper.xml.vm";

   // 自定义输出配置

   List FileOutConfig focList = new ArrayList ();

   // 自定义配置会被优先输出

   // 定义了 mapper.xml 文件输出的位置!指向的是 resources/mapper/*

   focList.add(new FileOutConfig(templatePath) {

   @Override

   public String outputFile(TableInfo tableInfo) {

   // 自定义输出文件名 , 如果你 Entity 设置了前后缀、此处注意 xml 的名称会跟着发生变化!!

   return parentPath + "/"+submoduleName+"/src/main/resources/mapper/"+tableInfo.getEntityName() + "Mapper" + StringPool.DOT_XML;

   cfg.setFileOutConfigList(focList);

   // 配置模板

   TemplateConfig templateConfig = new TemplateConfig();

   templateConfig.setXml(null);

  
* -- 数据库表映射到实体类的命名策略

   * -- 生成表(要生成实体类的表名,支持多表·11一起生成,以数组的形式填写)

   * -- 设置表的前缀(TablePrefix)

   StrategyConfig stConfig = new StrategyConfig();

   //全局大写命名

   stConfig.setCapitalMode(true)

   // 数据库表映射到实体的命名策略

   .setNaming(NamingStrategy.underline_to_camel) // 驼峰命名

   // 数据库表字段映射实体类的命名策略

   .setColumnNaming(NamingStrategy.no_change) // 不做任何改变

   // lombok 模型

   .setEntityLombokModel(true)

   // 生成 @RestController 控制器

   .setRestControllerStyle(true)

   // 生成的表,多个表以英文逗号区分

   .setInclude(scanner("表名,多个英文逗号分割").split(",")) // 由 scanner 控制台输入多个表名进行逆向工程生成代码

   //url中驼峰转连字符

   .setControllerMappingHyphenStyle(true)

   // 设置表的前缀,防止生成实体类时出现表的前缀

   .setTablePrefix("t_");

   //4. 包名策略配置

   * PackageConfig的主要属性配置

   * 公共包--Parent

   PackageConfig pkConfig = new PackageConfig();

   pkConfig.setParent(generatingPath)

   .setMapper("mapper")

   .setService("service")

   .setController("controller")

   .setServiceImpl("service.impl")

   .setEntity("pojo");

   // mapper.xml 之前在 InjectionConfig 那里配置过了

   //.setXml("mapper");

   //5. 整合配置

   * 整合需要的对象有:

   * -- GlobalConfig

   * -- DataSourceConfig

   * -- StrategyConfig

   * -- PackageConfig

   ag.setGlobalConfig(config)

   .setDataSource(dsConfig)

   .setStrategy(stConfig)

   .setCfg(cfg)

   .setTemplate(templateConfig)

   .setTemplateEngine(new FreemarkerTemplateEngine())

   .setPackageInfo(pkConfig);

   //6. 执行

   ag.execute();

   System.out.println("======= 代码生成完毕 ========");

  

 

 

  上面应该能满足大部分基础的项目结构。需要注意的是前面几个路径的变量设置。

  还有一个就是 mapper.xml 一般是在项目的 resource目录下,如果需要设置到与 mapper接口一个包下,就需要将 ag.setCfg(cfg)删除,然后再 pkConfig.setXml("path")保证与 setMapper("path")保持一致即可。

  以上就是MP 代码生成器工具类(magicalcoder的代码生成器)的详细内容,想要了解更多 MP 代码生成器工具类的内容,请持续关注盛行IT软件开发工作室。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: