在IDEA中使用MyBatis Generator逆向工程生成代码

1,714 阅读2分钟

在IDEA中使用MyBatis Generator逆向工程生成代码

本文介绍在mybatis中利用maven 使用mybatis-generator 生成代码和映射文件

一、maven配置

在pom.xml文件下的内添加增加以下插件

  <plugins>
    <plugin>
      <groupId>org.mybatis.generator</groupId>
      <artifactId>mybatis-generator-maven-plugin</artifactId>
      <version>1.3.2</version>
      <configuration>
        <verbose>true</verbose>
        <overwrite>true</overwrite>
      </configuration>
    </plugin>
  </plugins>

mybatis-generator配置文件

在maven项目下的src/main/resources 目录下建立generatorConfig.xml

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>
  <!--导入属性配置-->
  <!--<properties resource="generator.properties"></properties>-->

  <!--指定特定数据库的jdbc驱动jar包的位置-->
  <!--<classPathEntry location="${jdbc.driverLocation}"/>-->

  <classPathEntry
              location="/Users/poseture/mv/mybatis-generator/mysql-connector-java-5.1.35.jar"/>

  <context id="default" targetRuntime="MyBatis3">

      <!-- optional,旨在创建class时,对注释进行控制 -->
      <commentGenerator>
          <property name="suppressDate" value="true"/>
          <property name="suppressAllComments" value="true"/>
      </commentGenerator>


      <jdbcConnection driverClass="com.mysql.jdbc.Driver"
                      connectionURL="jdbc:mysql://localhost:3306/book" userId="root"
                      password="root"/>

      <javaTypeResolver>
          <property name="forceBigDecimals" value="false"/>
      </javaTypeResolver>


      <!-- Model模型生成器,用来生成含有主键key的类,记录类 以及查询Example类
          targetPackage     指定生成的model生成所在的包名
          targetProject     指定在该项目下所在的路径
      -->
      <javaModelGenerator targetPackage="com.ft.entity"
                          targetProject="src/main/java">

          <!-- 是否允许子包,即targetPackage.schemaName.tableName -->
          <property name="enableSubPackages" value="false"/>
          <!-- 是否对model添加 构造函数 -->
          <property name="constructorBased" value="true"/>
          <!-- 是否对类CHAR类型的列的数据进行trim操作 -->
          <property name="trimStrings" value="true"/>
          <!-- 建立的Model对象是否 不可改变  即生成的Model对象不会有 setter方法,只有构造方法 -->
          <property name="immutable" value="false"/>
      </javaModelGenerator>

      <!--Mapper映射文件生成所在的目录 为每一个数据库的表生成对应的SqlMap文件 -->
      <sqlMapGenerator targetPackage="com.ft.mapper"
                       targetProject="src/main/java">
          <property name="enableSubPackages" value="false"/>
      </sqlMapGenerator>

      <!-- 客户端代码,生成易于使用的针对Model对象和XML配置文件 的代码
              type="ANNOTATEDMAPPER",生成Java Model 和基于注解的Mapper对象
              type="MIXEDMAPPER",生成基于注解的Java Model 和相应的Mapper对象
              type="XMLMAPPER",生成SQLMap XML文件和独立的Mapper接口
      -->
      <javaClientGenerator targetPackage="com.ft.dao"
                           targetProject="src/main/java" type="XMLMAPPER">
          <property name="enableSubPackages" value="true"/>
      </javaClientGenerator>


      <table tableName="t_questionaire" domainObjectName="Questionaire"
             enableCountByExample="false" enableUpdateByExample="false"
             enableDeleteByExample="false" enableSelectByExample="false"
             selectByExampleQueryId="false">
      </table>

      <table tableName="t_subject" domainObjectName="Subject"
             enableCountByExample="false" enableUpdateByExample="false"
             enableDeleteByExample="false" enableSelectByExample="false"
             selectByExampleQueryId="false">
      </table>
      <table tableName="T_ques_subject" domainObjectName="QuesSubject"
             enableCountByExample="false" enableUpdateByExample="false"
             enableDeleteByExample="false" enableSelectByExample="false"
             selectByExampleQueryId="false">
      </table>

  </context>

运行

添加一个maven运行的方式

这里写图片描述
点击运行就可以了
这里写图片描述

结果

这里写图片描述