Mybatis引用Generator插件

Generator可以快速生成基本的增删改查代码,引入插件主要分三个步骤。

  ①导入相关依赖。

    <plugins>
       <plugin>
         <groupId>org.mybatis.generator</groupId>
         <artifactId>mybatis-generator-maven-plugin</artifactId>
         <version>1.3.2</version>
         <configuration>
           <configurationFile>src/main/resources/generatorConfig.xml</configurationFile>
           <verbose>true</verbose>
           <overwrite>true</overwrite>
         </configuration>
         <executions>
           <execution>
             <id>Generate MyBatis Artifacts</id>
             <goals>
               <goal>generate</goal>
             </goals>
           </execution>
         </executions>
         <dependencies>
           <dependency>
             <groupId>org.mybatis.generator</groupId>
             <artifactId>mybatis-generator-core</artifactId>
             <version>1.3.2</version>
           </dependency>
           <dependency>
             <groupId>mysql</groupId>
             <artifactId>mysql-connector-java</artifactId>
             <version>8.0.19</version>
           </dependency>
         </dependencies>
       </plugin>
     </plugins>

  ②编写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="jdbc.properties"/>

    <!--
    targetRuntime:此属性用于指定生成的代码的运行时环境。
        MyBatis3(默认值):生成具有QBC风格的增删改查sql.
        MyBatis3Simple:生成简单的增删改查sql.
    defaultModelType:推荐使用"flat",表示该模型为每一张表只生成一个实体类,这个实体类包含表中的所有字段。
    -->
    <context id="sql"  targetRuntime="MyBatis3Simple" defaultModelType="flat">

        <!-- 生成的Java文件的编码 -->
        <property name="javaFileEncoding" value="UTF-8" />

        <!-- beginningDelimiter和endingDelimiter:指明数据库的用于标记数据库对象名的符号,比如ORACLE就是双引号,MYSQL默认是`反引号; -->
        <property name="beginningDelimiter" value="`" />
        <property name="endingDelimiter" value="`" />

        <!-- 抑制生成代码注释 -->
        <commentGenerator>
            <property name="suppressDate" value="true"/>
            <property name="suppressAllComments" value="true"/>
        </commentGenerator>

        <!--数据库链接地址账号密码-->
        <jdbcConnection
                driverClass="${jdbc.driver}"
                connectionURL="${jdbc.url}"
                userId="${jdbc.username}"
                password="${jdbc.password}">
        </jdbcConnection>

        <!-- 用来指定JDBC类型和Java类型如何转换,默认值为false,一般不需要配置。-->
        <!-- 默认情况下的转换规则为
                如果精度>0或者长度>18,就会使用java.math.BigDecimal
                如果精度=0并且10<=长度<=18,就会使用java.lang.Long
                如果精度=0并且5<=长度<=9,就会使用java.lang.Integer
                如果精度=0并且长度<5,就会使用java.lang.Short
         -->
        <javaTypeResolver>
            <property name="forceBigDecimals" value="false"/>
        </javaTypeResolver>

        <!--生成domain类存放位置-->
        <javaModelGenerator targetPackage="cn.xmddop.domain" targetProject=".\src\main\java">
            <property name="enableSubPackages" value="true"/>
            <property name="trimStrings" value="true"/>
        </javaModelGenerator>

        <!--生成映射文件存放位置-->
        <sqlMapGenerator targetPackage="cn.xmddop.mapper" targetProject=".\src\main\resources">
            <property name="enableSubPackages" value="true"/>
        </sqlMapGenerator>

        <!--生成Dao类存放位置-->
        <javaClientGenerator type="XMLMAPPER" targetPackage="cn.xmddop.mapper" targetProject=".\src\main\java">
            <property name="enableSubPackages" value="true"/>
        </javaClientGenerator>

        <!--生成对应表及类名-->
        <table tableName="student2"
               domainObjectName="Student">
            <property name="useActualColumnNames" value="true"/>
            <generatedKey column="id" sqlStatement="JDBC" />
        </table>
    </context>

</generatorConfiguration>

 ③启动generator插件。

隐藏的问题:

      有时候会出现生成的javaBean对象与数据库表中的列名不一致的情况,但换个表名之后一切就都正常了,至于怎么去真正解

决这个问题,还得求大佬们指点一二。

    

猜你喜欢

转载自blog.csdn.net/myCsdn_Xm/article/details/105096376