当前位置:   article > 正文

mybatis-plus 代码生成器的实战 自动生成代码_mybatis代码自动生成器

mybatis代码自动生成器

        项目中,通过mybatis-generator插件自动生成代码,直接构建出项目全面的基本结构。例如常用的POJO,DAO,Service,Service实现类,Controller层以及mapper.xml文件;进而达到快速开发的目的; 下面介绍两种方式实现,基本相同,写法不同而已;

1. 使用插件+ xml配置        

引入pom插件
 

  1. <plugin>
  2. <!--Mybatis-generator插件,用于自动生成Mapper和POJO -->
  3. <groupId>org.mybatis.generator</groupId>
  4. <artifactId>mybatis-generator-maven-plugin</artifactId>
  5. <version>1.3.2</version>
  6. <configuration>
  7. <!--配置文件的位置 -->
  8. <configurationFile>src/main/resources/generatorConfig.xml</configurationFile>
  9. <verbose>true</verbose>
  10. <overwrite>true</overwrite>
  11. </configuration>
  12. <executions>
  13. </executions>
  14. </plugin>

generatorConfig.xml 配置文件

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!DOCTYPE generatorConfiguration
  3. PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN"
  4. "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">
  5. <!-- 自动生成mybatis相关类文件 -->
  6. <generatorConfiguration>
  7. <!-- classPathEntry:数据库的JDBC驱动的jar包地址 -->
  8. <!--<classPathEntry location="?\mysql-connector-java-5.1.47.jar"/>-->
  9. <context id="DB2Tables" targetRuntime="MyBatis3">
  10. <commentGenerator>
  11. <!-- 是否去除自动生成的注释 true:是 : false:否 -->
  12. <property name="suppressAllComments" value="true" />
  13. <!-- 数据库连接的信息:驱动类、连接地址、用户名、密码 -->
  14. </commentGenerator>
  15. <jdbcConnection driverClass="com.mysql.jdbc.Driver"
  16. connectionURL="数据库地址"
  17. userId="xxx" password="xxx">
  18. </jdbcConnection>
  19. <!-- 默认false,把JDBC DECIMAL 和 NUMERIC 类型解析为 Integer true,把JDBC DECIMAL 和
  20. NUMERIC 类型解析为java.math.BigDecimal -->
  21. <javaTypeResolver>
  22. <property name="forceBigDecimals" value="false" />
  23. </javaTypeResolver>
  24. <!-- targetProject:自动生成代码的位置 -->
  25. <javaModelGenerator targetPackage="com.xxx.entity"
  26. targetProject="src/main/java">
  27. <!-- enableSubPackages:是否让schema作为包的后缀 -->
  28. <property name="enableSubPackages" value="true" />
  29. <!-- 从数据库返回的值被清理前后的空格 -->
  30. <property name="trimStrings" value="true" />
  31. </javaModelGenerator>
  32. <sqlMapGenerator targetPackage="mapper" targetProject="src/main/resources">
  33. <property name="enableSubPackages" value="false" />
  34. </sqlMapGenerator>
  35. <javaClientGenerator type="XMLMAPPER"
  36. targetPackage="com.xxx.mapper" targetProject="src/main/java">
  37. <property name="enableSubPackages" value="true" />
  38. </javaClientGenerator>
  39. <!-- tableName:用于自动生成代码的数据库表;domainObjectName:对应于数据库表的javaBean类名 -->
  40. <!-- 表-->
  41. <table schema="xxx" tableName="xxx"
  42. domainObjectName="xxx">
  43. </table>
  44. </context>
  45. </generatorConfiguration>

 运行这个maven插件就可以了

 

2 .java文件实现

引入pom

  1. <dependency>
  2. <groupId>com.baomidou</groupId>
  3. <artifactId>mybatis-plus-generator</artifactId>
  4. <version>3.0.7.1</version>
  5. </dependency>

 可执行的java文件

  1. package com.xxx;
  2. import com.baomidou.mybatisplus.annotation.DbType;
  3. import com.baomidou.mybatisplus.generator.AutoGenerator;
  4. import com.baomidou.mybatisplus.generator.InjectionConfig;
  5. import com.baomidou.mybatisplus.generator.config.DataSourceConfig;
  6. import com.baomidou.mybatisplus.generator.config.FileOutConfig;
  7. import com.baomidou.mybatisplus.generator.config.GlobalConfig;
  8. import com.baomidou.mybatisplus.generator.config.PackageConfig;
  9. import com.baomidou.mybatisplus.generator.config.StrategyConfig;
  10. import com.baomidou.mybatisplus.generator.config.TemplateConfig;
  11. import com.baomidou.mybatisplus.generator.config.po.TableInfo;
  12. import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
  13. import java.util.ArrayList;
  14. import java.util.List;
  15. import org.junit.Test;
  16. public class MyBatisPlusGenerator {
  17. @Test
  18. public void generator() {
  19. // 具体项目的绝对路径
  20. String projectPath = "E:/WorkingSpace/xxx/xxx/";
  21. // 生成mapper .xml 文件 地址的路径
  22. String mapperPath = projectPath + "src/main/resources/mappers/";
  23. // 项目代码路径
  24. String srcPath = projectPath + "src/main/java";
  25. GlobalConfig config = new GlobalConfig();
  26. // 数据库地址
  27. String dbUrl = "jdbc:mysql://xxx";
  28. DataSourceConfig dataSourceConfig = new DataSourceConfig();
  29. dataSourceConfig.setDbType(DbType.MYSQL)
  30. .setUrl(dbUrl)
  31. .setUsername("xxx")
  32. .setPassword("xxx")
  33. .setDriverName("com.mysql.cj.jdbc.Driver");
  34. StrategyConfig strategyConfig = new StrategyConfig();
  35. strategyConfig.setCapitalMode(false)
  36. .setEntityLombokModel(false)
  37. .setNaming(NamingStrategy.underline_to_camel)
  38. .setInclude(new String[]{"表名称"})
  39. //.setLogicDeleteFieldName("is_delete")
  40. .setTablePrefix("表前缀")
  41. .setEntityLombokModel(true);
  42. config.setActiveRecord(true)
  43. .setAuthor("xxx")
  44. .setOutputDir(srcPath)
  45. .setFileOverride(true)
  46. .setBaseResultMap(true)
  47. .setEnableCache(false)
  48. .setServiceName("%sService")
  49. .setServiceImplName("%sServiceImpl")
  50. .setMapperName("%sDao")
  51. .setXmlName("%sMapper")
  52. .setOpen(false);
  53. InjectionConfig cfg = new InjectionConfig() {
  54. @Override
  55. public void initMap() {
  56. }
  57. };
  58. List<FileOutConfig> foc = new ArrayList<>();
  59. foc.add(new FileOutConfig("/templates/mapper.xml.vm") {
  60. @Override
  61. public String outputFile(TableInfo tableInfo) {
  62. return mapperPath + tableInfo.getXmlName() + ".xml";
  63. }
  64. });
  65. cfg.setFileOutConfigList(foc);
  66. TemplateConfig tc = new TemplateConfig();
  67. // 根据需要生成文件 设置null即不生成对应文件
  68. // tc.setController(null);
  69. tc.setXml(null);
  70. // tc.setEntity(null);
  71. AutoGenerator ag = new AutoGenerator();
  72. ag.setGlobalConfig(config)
  73. .setDataSource(dataSourceConfig)
  74. .setStrategy(strategyConfig)
  75. .setPackageInfo(new PackageConfig()
  76. // 父层路径
  77. .setParent("com.xxx")
  78. .setEntity("domain")
  79. .setMapper("dao")
  80. )
  81. .setCfg(cfg)
  82. .setTemplate(tc)
  83. .execute();
  84. }
  85. }

 直接运行就可以了

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/羊村懒王/article/detail/231151
推荐阅读
相关标签
  

闽ICP备14008679号