使用Mybatis-Generator自動生成Dao、Model、Mapping相關文件


  Mybatis屬於半自動ORM,在使用這個框架中,工作量最大的就是書寫Mapping的映射文件,由於手動書寫很容易出錯,我們可以利用Mybatis-Generator來幫我們自動生成文件。

  這里我們使用maven插件的形式。以Intellij IDEA為例,

1.首先安裝MyBatis Plugin插件。

2.在pom.xml中添加plugin

在有多個module的項目中有多個pom.xml文件,那么應該在哪一個pom.xml文件中配置插件呢?

src\main\resources\config\mybatis\mybatis-generator.xml這樣的話就在mybatis-generator.xml所在的module中配置插件,一般我是這樣做的。
<build>
        <plugins>
            <plugin>
                <groupId>org.mybatis.generator</groupId>
                <artifactId>mybatis-generator-maven-plugin</artifactId>
                <version>1.3.2</version>
                <configuration>
                    <!--項目中mybatis-generator.xml配置文件的位置,一定要保證正確-->
                    <configurationFile>src\main\resources\config\mybatis\mybatis-generator.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>
                </dependencies>
            </plugin>
        </plugins>
    </build>

3.生成mybatis-generator.xml文件

mybatis-generator.xml內容如下

這里同樣有一個問題,就是在多module項目中,下面的targetPackage,targetProject指的是哪一個module下的路徑呢?是mybatis-generator.xml所在的module,

所以一般還需要將生成的文件移動到合適的位置中去!

<?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>
    <!--驅動包的路徑-->
    <classPathEntry location="F:\maven\repos\mysql\mysql-connector-java\5.1.34\mysql-connector-java-5.1.34.jar"/>
    <context id="DB2Tables" targetRuntime="MyBatis3">
        <!--注釋-->
        <commentGenerator>
            <property name="suppressAllComments" value="true"/>
            <property name="suppressDate" value="true"/>
        </commentGenerator>
        <!--數據庫連接-->
        <jdbcConnection driverClass="com.mysql.jdbc.Driver" connectionURL="jdbc:mysql://127.0.0.1:3306/mybatis?zeroDateTimeBehavior=convertToNull&amp;
                        autoReconnect=true&amp;useUnicode=true&amp;characterEncoding=utf-8"
userId="root" password="root"/> <javaTypeResolver> <property name="forceBigDecimals" value="false"/> </javaTypeResolver> <!--生成Model類存放位置--> <javaModelGenerator targetPackage="com.winner.mybatis.domain" targetProject="src/main/java"> <!--是否對model添加構造函數--> <property name="constructorBased" value="false"/> <!--是否允許子包--> <property name="enableSubPackages" value="true"/> <!--建立的model對象是否不可變,也就是生成的model沒有setter方法--> <property name="immutable" value="false"/> <property name="trimStrings" value="false"/> </javaModelGenerator> <!--生成映射文件存放位置--> <sqlMapGenerator targetPackage="com.winner.mybatis.dao" targetProject="src/main/resources"> <property name="enableSubPackages" value="true"/> </sqlMapGenerator> <!--生成Mapper類存放位置--> <javaClientGenerator type="XMLMAPPER" targetPackage="com.winner.mybatis.dao" targetProject="src/main/java"> <property name="enableSubPackages" value="true"/> </javaClientGenerator> <!--生成與表對應的類名--> <table schema="mybatis" tableName="items" domainObjectName="Items" enableInsert="true" enableSelectByExample="false" enableDeleteByPrimaryKey="false" enableDeleteByExample="false" enableCountByExample="false" enableUpdateByExample="false" enableSelectByPrimaryKey="true" enableUpdateByPrimaryKey="true"/> </context> </generatorConfiguration>

點擊插件,生成代碼

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM