百木园-与人分享,
就是让自己快乐。

代码生成器

Mybatis Generator

  • 使用xml配置文件形式自动生成
  • 只生成实体类、mapper接口及mapper.xml。并且包含丰富的内容
  • 首先添加mybatis依赖和相关插件
  <!-- 依赖MyBatis核心包 -->
  <dependencies>
      <dependency>
          <groupId>org.mybatis</groupId>
          <artifactId>mybatis</artifactId>
          <version>3.5.7</version>
      </dependency>
  </dependencies>
  <!-- 控制Maven在构建过程中相关配置 -->
  <build>
      <!-- 构建过程中用到的插件 -->
      <plugins>
          <!-- 具体插件,逆向工程的操作是以构建过程中插件形式出现的 -->
          <plugin>
              <groupId>org.mybatis.generator</groupId>
              <artifactId>mybatis-generator-maven-plugin</artifactId>
              <version>1.3.0</version>
              <!-- 插件的依赖 -->
              <dependencies>
                  <!-- 逆向工程的核心依赖 -->
                  <dependency>
                      <groupId>org.mybatis.generator</groupId>
                      <artifactId>mybatis-generator-core</artifactId>
                      <version>1.3.2</version>
                  </dependency>
                  <!-- 数据库连接池 -->
                  <dependency>
                      <groupId>com.mchange</groupId>
                      <artifactId>c3p0</artifactId>
                      <version>0.9.2</version>
                  </dependency>
                  <!-- MySQL驱动 -->
                  <dependency>
                      <groupId>mysql</groupId>
                      <artifactId>mysql-connector-java</artifactId>
                      <version>5.1.8</version>
                  </dependency>
              </dependencies>
          </plugin>
      </plugins>
  </build>
  • 创建generatorConfig.xml配置文件,从官网中复制下来即可.其中元素标签说明卸载注释中
<?xml version=\"1.0\" encoding=\"UTF-8\" ?>
<!DOCTYPE generatorConfiguration
        PUBLIC \"-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN\" 
        \"http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd\">
<generatorConfiguration>
    <!--
    targetRuntime: 执行生成的逆向工程的版本
        MyBatis3Simple:生成基本的CURD(清新简洁版)
        MyBatis3:生成带条件的CURD(奢华尊享版)
    -->
    <context id=\"DB2Tables\" targetRuntime=\"MyBatis3\">
          <!-- 数据库连接信息 -->
          <jdbcConnection driverClass=\"com.mysql.jdbc.Driver\"
                          connectionURL=\"jdbc:mysql:///your_database?useUnicode=true&amp;characterEncoding=utf8\"
                          userId=\"username\"
                          password=\"password\" />
  
          <!-- javaBean的生成策略 -->
          <javaModelGenerator targetPackage=\"module_name.entity\" targetProject=\".\\src\\main\\java\">
              <property name=\"enableSubPackages\" value=\"true\" />
              <property name=\"trimStrings\" value=\"true\" />
          </javaModelGenerator>
  
          <!-- SQL映射文件的生成策略 -->
          <sqlMapGenerator targetPackage=\"mapper\" targetProject=\".\\src\\main\\resources\">
              <property name=\"enableSubPackages\" value=\"true\" />
          </sqlMapGenerator>
  
          <!-- Mapper接口的生成策略 -->
          <javaClientGenerator type=\"XMLMAPPER\" targetPackage=\"module_name.mapper\" targetProject=\".\\src\\main\\java\">
              <property name=\"enableSubPackages\" value=\"true\" />
          </javaClientGenerator>
  
          <!-- 逆向分析的表 -->
          <!-- tableName设置为*号,可以对应所有的表,此时不用写domainObjectName -->
          <!-- domainObjectName属性指定生成出来的实体类的类名 -->
          <table tableName=\"admin\" domainObjectName=\"Admin\" />
      </context>
</generatorConfiguration>
  • 最后在右边点击maven中插件,双击mybatis-generator:generate
  • 说明:上述两个配置文件都会报红,不用管尽管运行即可

MybatisPlus Generator

  • 使用代码形式自动生成
  • 会生成从Controller层到Dao层的所有文件,其中还包括实体类
  • 首先添加必须的依赖
<dependencies>
  <!--mybatis-plus 持久层-->
  <dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>mybatis-plus-boot-starter</artifactId>
    <version>3.0.5</version>
  </dependency>

  <!-- velocity 模板引擎, Mybatis Plus 代码生成器需要 -->
  <dependency>
    <groupId>org.apache.velocity</groupId>
    <artifactId>velocity-engine-core</artifactId>
    <version>2.0</version>
  </dependency>

  <!--lombok用来简化实体类:需要安装lombok插件-->
  <dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
    <version>1.18.20</version>
  </dependency>

</dependencies>
  • 这里是在单元测试中运行
public class GeneratorTest{
  @Test
  public void run() {

    // 1、创建代码生成器
    AutoGenerator mpg = new AutoGenerator();

    // 2、全局配置
    GlobalConfig gc = new GlobalConfig();
    String projectPath = System.getProperty(\"user.dir\");
    // 换成绝对路径
    gc.setOutputDir(\"your project absolute path\" + \"/src/main/java\");
    gc.setAuthor(\"xsha_h\");
    gc.setOpen(false); //生成后是否打开资源管理器
    gc.setFileOverride(false); //重新生成时文件是否覆盖
    gc.setServiceName(\"%sService\");	//去掉Service接口的首字母I
    gc.setIdType(IdType.ID_WORKER_STR); //主键策略
    gc.setDateType(DateType.ONLY_DATE);//定义生成的实体类中日期类型
    gc.setSwagger2(true);//开启Swagger2模式

    mpg.setGlobalConfig(gc);

    // 3、数据源配置
    DataSourceConfig dsc = new DataSourceConfig();

    dsc.setUrl(\"jdbc:mysql:///database_name?serviceTimezone=GMT%2B8\");
    dsc.setDriverName(\"com.mysql.cj.jdbc.Driver\");
    dsc.setUsername(\"username\");
    dsc.setPassword(\"password\");
    dsc.setDbType(DbType.MYSQL);
    mpg.setDataSource(dsc);

    // 4、包配置
    PackageConfig pc = new PackageConfig();

    // 包名  com.xsha.module_name
    pc.setParent(\"com.xsha\");
    pc.setModuleName(\"module_name\"); //模块名
    pc.setController(\"controller\");
    pc.setEntity(\"entity\");
    pc.setService(\"service\");
    pc.setMapper(\"mapper\");
    mpg.setPackageInfo(pc);

    // 5、策略配置
    StrategyConfig strategy = new StrategyConfig();

    // 生成表格名称对应的实体类
    strategy.setInclude(\"table_name1\", \"table_name2\", \"table_name3\", \"table_name4\");
    strategy.setNaming(NamingStrategy.underline_to_camel);//数据库表映射到实体的命名策略
    strategy.setTablePrefix(pc.getModuleName() + \"_\"); //生成实体时去掉表前缀(根据需求变化)

    strategy.setColumnNaming(NamingStrategy.underline_to_camel);//数据库表字段映射到实体的命名策略
    strategy.setEntityLombokModel(true); // lombok 模型 @Accessors(chain = true) setter链式操作

    strategy.setRestControllerStyle(true); //restful api风格控制器
    strategy.setControllerMappingHyphenStyle(true); //url中驼峰转连字符

    mpg.setStrategy(strategy);


    // 6、执行
    mpg.execute();
  }
}
  • 运行即可生效

来源:https://www.cnblogs.com/aitiknowledge/p/16504775.html
本站部分图文来源于网络,如有侵权请联系删除。

未经允许不得转载:百木园 » 代码生成器

相关推荐

  • 暂无文章