mybatis generator

MyBatis Generator(簡稱MBG)是MyBatis的代碼生成器java

設計目標:sql

MBG用於內省數據庫表,並將其生成可用於訪問表的工件。MBG旨在對CRUD數據庫操做進行自動化配置。MBG用來生成簡單的實體類、映射文件。鏈接查詢或存儲過程等複雜操做還須要手動編寫。數據庫

運行過程:mybatis

1.解析配置文件:generatorConfig.xmlapp

2.鏈接數據庫,獲取表結構等信息dom

3.根據配置文件,將每一個表對應的實體類、配置文件等自動生成到項目固定位置maven

運行方式:sqlserver

能夠以ANT、命令行、MAVEN等方式進行配置運行spa

本文以Maven運行方式進行配置。插件

MBG包含了一個用於集成到maven構建中的Maven插件(在maven項目的pom.xml文件中設置):

        <plugin>
                <groupId>org.mybatis.generator</groupId>
                <artifactId>mybatis-generator-maven-plugin</artifactId>
                <version>1.3.5</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>
            </plugin>

插件包含一個目標:

  • mybatis-generator:generate

能夠經過命令執行目標:

  • mvn mybatis-generator:generate

generatorConfig.xml文件配置

執行generate構建目標的時候,首先會掃描:src/main/resources/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>
<!-- 數據庫驅動:選擇你的本地硬盤上面的數據庫驅動包。由於MBG生成器須要首先鏈接並解析數據庫表結構-->
<classPathEntry location="C:\Users\sh\.m2\repository\com\microsoft\sqlserver\mssql-jdbc\6.1.0.jre7\mssql-jdbc-6.1.0.jre7.jar"/>
<!-- 上下文環境。 id:惟一標識、值會用於一些錯誤信息的提示。targetRuntime:mybatis版本代碼(默認爲:MyBatis3)-->
<context id="mssql2014Tables" targetRuntime="MyBatis3">
<commentGenerator>
<!-- 是否在註釋中生成時間戳 true:是 : false:否 -->
<property name="suppressDate" value="true"/>
<!-- 是否去除自動生成的註釋 true:是 : false:否 -->
<property name="suppressAllComments" value="true"/>
</commentGenerator>
<!--數據庫連接URL,用戶名、密碼 -->
<jdbcConnection driverClass="com.microsoft.sqlserver.jdbc.SQLServerDriver" connectionURL="jdbc:sqlserver://172.16.0.218\DEPSERVER;databaseName=DEP_218" userId="sa" password="dep@2014">
</jdbcConnection>
<javaTypeResolver>
<property name="forceBigDecimals" value="false"/>
</javaTypeResolver>
<!-- 生成模型的包名和位置 targetPackage:指定模型類的生成位置(即包名) targetProject:指定目標位置-->
<javaModelGenerator targetPackage="com.winning.spd.manager.model.surgery" targetProject="src\main\java">
<property name="enableSubPackages" value="true"/>
<property name="trimStrings" value="true"/>
</javaModelGenerator>
<!-- 生成映射文件的包名和位置 targetPackage:指定 targetProject:指定目標位置-->
<!-- sqlMapGenerator 爲每一個內省表構建一個MyBatis / iBATIS格式的SQL映射XML文件
       若是iBATIS2被定向,則該元素是<context>元素的必需子元素。
若是MyBatis3被定向,那麼只有當您選擇的javaClientGenerator須要XML時,該元素纔是<context>元素的必需子元素。
若是不指定javaClientGenerator,則應用如下規則:
若是您指定了sqlMapGenerator,那麼MBG將僅生成SQL映射XML文件和模型類。
若是不指定sqlMapGenerator,那麼MBG將僅生成模型類。 -->
<sqlMapGenerator targetPackage="main.resources.mapper.mssql" targetProject="src">
<property name="enableSubPackages" value="true"/>
</sqlMapGenerator>
<!-- 定義客戶端生成器屬性。對於ibatis2,生成對象採用Dao接口和實現類。對於MyBatis,生成的對象採用映射器接口的形式 -->
<!-- type="XMLMAPPER" 表示:生成的對象將是MyBatis 3.x映射程序基礎結構的Java接口。接口將依賴於生成的XML映射器文件。-->
<javaClientGenerator type="XMLMAPPER" targetPackage="com.winning.spd.manager.mapper" targetProject="src\main\java">
<property name="enableSubPackages" value="true"/>
</javaClientGenerator>
<!-- 要生成的表 tableName是數據庫中的表名或視圖名 domainObjectName是實體類名-->
<table tableName="Order_Surgery" domainObjectName="Surgery" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false">
<property name="useActualColumnNames" value="true" />
</table>
</context>
</generatorConfiguration>

執行MBG,生成配置文件

執行 mvn mybatis-generator:generate 命令,若構建無誤,則能夠順利生成模型類、映射接口和SQL映射XML文件

相關文章
相關標籤/搜索