1. 程式人生 > >通過idea (maven專案)生成實體類、dao、和mybatis的mapper.xml

通過idea (maven專案)生成實體類、dao、和mybatis的mapper.xml

1、建立maven專案,引入以下jar包

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>demo-generator</groupId>
    <artifactId>demo-generator</artifactId>
    <version>1.0-SNAPSHOT</version>
    <build>
        <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>
                </dependencies>
            </plugin>
        </plugins>
    </build>
</project>

2、新增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="application.properties"/>   -->  
      
    <!-- 指定資料連線驅動jar地址 -->  
    <classPathEntry location="E:\DbVisualizer 6..0.9\DbVisualizer 6..0.9\DbVisualizer-6.0.9\jdbc\oracle\ojdbc6.jar" />
      
    <!-- 一個數據庫一個context -->  
    <context id="infoGuardian">  
        <!-- 註釋 -->  
        <commentGenerator >  
            <property name="suppressAllComments" value="false"/><!-- 是否取消註釋 -->  
            <property name="suppressDate" value="false" /> <!-- 是否生成註釋代時間戳-->  
        </commentGenerator>  
          
        <!-- jdbc連線 -->  
        <jdbcConnection driverClass="oracle.jdbc.driver.OracleDriver"  
            connectionURL="jdbc:oracle:thin:@132.11.111.46:1521:fghfgp" userId="admin"  
            password="123456" />  
          
        <!-- 型別轉換 -->  
        <javaTypeResolver>  
            <!-- 是否使用bigDecimal, false可自動轉化以下型別(Long, Integer, Short, etc.) -->  
            <property name="forceBigDecimals" value="false"/>  
        </javaTypeResolver>  
          
        <!-- 生成實體類地址 -->    
        <javaModelGenerator targetPackage="cn.bravolinks.erp.oa.server.model"
            targetProject="src/main/java" >
            <!-- 是否在當前路徑下新加一層schema,eg:fase路徑com.oop.eksp.user.model, true:com.oop.eksp.user.model.[schemaName] -->  
            <property name="enableSubPackages" value="false"/>  
            <!-- 是否針對string型別的欄位在set的時候進行trim呼叫 -->  
            <property name="trimStrings" value="true"/>  
        </javaModelGenerator>  
          
        <!-- 生成mapxml檔案 -->  
        <sqlMapGenerator targetPackage="cn.bravolinks.erp.oa.server.mapper"
            targetProject="src/main/java" >
            <!-- 是否在當前路徑下新加一層schema,eg:fase路徑com.oop.eksp.user.model, true:com.oop.eksp.user.model.[schemaName] -->  
            <property name="enableSubPackages" value="false" />  
        </sqlMapGenerator>  
          
        <!-- 生成mapxml對應client,也就是介面dao -->      
        <javaClientGenerator targetPackage="cn.bravolinks.erp.oa.server.dao"
            targetProject="src/main/java" type="XMLMAPPER" >
            <!-- 是否在當前路徑下新加一層schema,eg:fase路徑com.oop.eksp.user.model, true:com.oop.eksp.user.model.[schemaName] -->  
            <property name="enableSubPackages" value="false" />  
        </javaClientGenerator>  
          
        <!-- 配置表資訊 -->
        <!-- schema即為資料庫名 tableName為對應的資料庫表 domainObjectName是要生成的實體類 enable*ByExample   
                是否生成 example類   -->  
        <table schema="fghfgp" tableName="OA_REWARDHOLIDAY"
            domainObjectName="OaRewardholiday" enableCountByExample="false"
            enableDeleteByExample="false" enableSelectByExample="false"  
            enableUpdateByExample="false">  
            <!-- 忽略列,不生成bean 欄位 -->  
            <ignoreColumn column="FRED" />  
            <!-- 指定列的java資料型別 -->  
            <columnOverride column="LONG_VARCHAR_FIELD" jdbcType="NVARCHAR" />  
        </table>
    </context>  
</generatorConfiguration>  

3、啟動專案,生成目錄: