利用mybatis-generator自動生成數據持久化的代碼

MyBatis生成器簡介

MyBatis Generator(MBG)是MyBatis MyBatis 和iBATIS的代碼生成器它將生成全部版本的MyBatis的代碼,以及版本2.2.0以後的iBATIS。它將內省數據庫表(或許多表),並將生成可用於訪問表的工件。這減小了設置對象和配置文件與數據庫表交互的初始滋擾。MBG試圖對簡單CRUD(建立,檢索,更新,刪除)的大部分數據庫操做產生重大影響。您仍然須要爲鏈接查詢或存儲過程手動編寫SQL和對象。java

MyBatis Generator將會生成:mysql

  • 與表結構匹配的Java POJO。這可能包括:
    • 一個類匹配表的主鍵(若是有一個主鍵)
    • 一個匹配表的非主鍵字段的類(BLOB字段除外)
    • 包含表的BLOB字段的類(若是表具備BLOB字段)
    • 一個類來啓用動態選擇,更新和刪除

    這些類之間有適當的繼承關係。請注意,生成器可能被配置爲生成不一樣類型的POJO層次結構 - 例如,若是您願意,您能夠選擇爲每一個表生成單個域對象。git

  • MyBatis / iBATIS兼容的SQL地圖XML文件。MBG爲配置中的每一個表上的簡單CRUD函數生成SQL。生成的SQL語句包括:
    • 經過主鍵更新
    • 經過示例更新(使用動態where子句)
    • 經過主鍵刪除
    • 經過示例刪除(使用動態where子句)
    • 經過主鍵選擇
    • 經過示例進行選擇(使用動態where子句)
    • 以身做則

    根據表的結構,這些語句有不一樣的變體(例如,若是表沒有主鍵,則MBG不會經過主鍵函數生成更新)。github

  • 適合使用上述對象的Java客戶端類。Java客戶機類的生成是可選的。MBG將爲MyBatis 3.x生成如下類型的Java客戶端:
    • 與MyBatis 3.x映射器基礎結構配合使用的映射器接口
    MBG將爲iBATIS 2.x生成如下類型的Java客戶端:
    • 符合Spring框架的DAO
    • 只使用iBATIS SQL映射API的DAO。這些DAO能夠經過兩種方式生成:經過構造函數或setter注入來提供SqlMapClient
    • 符合iBATIS DAO框架的DAO(這是iBATIS的一個可選部分,如今這個框架已經被廢棄了,咱們建議你改用Spring框架)

MyBatis生成器被設計爲在迭代開發環境中運行良好,而且能夠做爲Ant任務或Maven插件包含在持續構建環境中。迭代運行MBG時須要注意的重要事項包括:spring

  1. 若是存在與新生成的XML文件具備相同名稱的現有文件,MBG將自動合併XML文件。MBG不會覆蓋您對其生成的XML文件所作的任何自定義更改。您能夠反覆運行它,而不用擔憂丟失對XML的自定義更改。MBG將替換以前運行中生成的任何XML元素。
  2. MBG 不會合併Java文件,它能夠覆蓋現有文件或使用不一樣的惟一名稱保存新生成的文件。若是對生成的Java文件進行更改並重復運行MBG,則必須手動合併更改。看成爲Eclipse 插件運行時 ,MBG能夠自動合併Java文件。

運行Eclipse

看成爲Eclipse功能運行時,生成器還能夠合併Java文件並將用戶修改保存到生成的Java文件中。生成器使用Eclipse Java解析器和AST walker來完成此操做。Eclipse功能還具備一些用戶界面加強功能,使生成器能夠更容易地運行。最後,Eclipse功能爲Eclipse幫助系統提供了生成器的完整用戶手冊。sql

Eclipse功能能夠在Eclipse市場上找到:https: //marketplace.eclipse.org/content/mybatis-generator數據庫

依賴

MBG除了JRE以外沒有任何依賴關係。JRE 6.0或以上是必需的。此外,還須要實現DatabaseMetaData接口的JDBC驅動程序,尤爲是getColumns和 getPrimaryKeys方法。apache

支持

經過MyBatis用戶郵件列表提供對MyBatis生成器的支持。您能夠經過Google代碼在此處訂閱或查看郵件列表:mybatis

http://groups.google.com/group/mybatis-useroracle

若是您認爲發現了錯誤,請在建立新工單以前先在用戶列表中提出一個問題。若是您發現錯誤或者有新的功能請求,您能夠在GitHub這裏打開一個新的問題:

https://github.com/mybatis/generator/issues

 

如何使用MyBatis

下載地址:騰訊微雲傳送門

1、直接使用命令啓動

1.下載解壓後的結構圖

2.配置鏈接 編輯generatorConfig文件

<?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="mysql51.12.jar" />
  <context id="MBG" targetRuntime="MyBatis3">
      <!-- 去除自動生成的註釋 -->
      <commentGenerator>
          <property name="suppressAllComments" value="true" />
          <property name="suppressDate" value="true" /> <!-- 是否生成註釋代時間戳-->
      </commentGenerator>
    <!-- 數據庫配置 -->
    <!--<jdbcConnection driverClass="oracle.jdbc.driver.OracleDriver"
        connectionURL="jdbc:oracle:thin:@192.168.1.179:1521:reward"
        userId="qxsomp"
        password="qixin20130802">-->
        <!--<jdbcConnection driverClass="com.microsoft.sqlserver.jdbc.SQLServerDriver"
        connectionURL="jdbc:sqlserver://127.0.0.1:1433;
        DatabaseName=demo"
        userId="sa"
        password="sa">-->
      <jdbcConnection driverClass="com.mysql.jdbc.Driver"
                      connectionURL="jdbc:mysql://127.0.0.1/platformdb"
                      userId="root"
                      password="root">
    </jdbcConnection>

    <javaTypeResolver >
      <property name="forceBigDecimals" value="false" />
    </javaTypeResolver>
    <!-- model配置 -->
    <javaModelGenerator targetPackage="demo.model" targetProject="./src">
      <property name="enableSubPackages" value="true" />
      <property name="trimStrings" value="true" />
    </javaModelGenerator>
    <!-- xml配置文件 -->
    <sqlMapGenerator targetPackage="demo.mapperxml"  targetProject="./xml">
      <property name="enableSubPackages" value="true" />
      
    </sqlMapGenerator>
    <!--接口-->
    <javaClientGenerator type="XMLMAPPER" targetPackage="demo.mapper"  targetProject="./src">
      <property name="enableSubPackages" value="true" />
    </javaClientGenerator>
     <!-- 表名-->
      <table    tableName="s_users" domainObjectName="Users"
              enableCountByExample="false" enableUpdateByExample="false"
              enableDeleteByExample="false" enableSelectByExample="false"
              selectByExampleQueryId="false">
      </table>

  </context>
</generatorConfiguration>

 確認配置無誤的時候將start中的命令在dos中執行,若是出現前言不容許有內容的錯誤時,將generatorConfig.xml文件用記事本另存爲ANSI編碼

3.使用命令啓動生成工具

在mybatis generaotr工具跟目錄下按下Shift並鼠標右鍵,在菜單鍵中找到「在此處打開命令窗口」並點擊此項

輸入 start start.bat 並回車

回車後會自動打開一個新的命令窗口:

如下界面就是生成成功並沒有錯誤的提示

如下界面就是生成成功但有錯誤提示:錯誤的緣由是由於生成的以前有存在相同的文件在目錄下了。這樣雖然生成成功了,可是是吧兩次生成結果追加爲一個。這樣的話將文件複製到項目中是會出現異常的,須要先修改在複製到項目。或者生成前先刪除以前已生成的文件。

如下界面就是生成失敗並有異常提示:具體錯誤緣由請根據反饋消息鑑別。這裏的緣由是由於xml配置文件中有問題。數據鏈接不存在。致使jdbc鏈接失敗了。

2、配合maven+IDEA開發工具使用

1.在pom.xml中的 <build>標籤中添加plugins標籤

<plugins>
<plugin>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-maven-plugin</artifactId>
<version>1.3.2</version>
<configuration>
<configurationFile>src/main/resources/mybatis-generator/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>

 

 注意事項:這裏的configurationFile路徑指的就是mybatis-generator中的配置文件路徑,具體路徑根據本身的項目決定

2啓動

mvn mybatis-generator:generate 或者直接點擊

相關文章
相關標籤/搜索