1. 程式人生 > >iBatis 程式碼自動生成工具 iBator 及 Example 使用

iBatis 程式碼自動生成工具 iBator 及 Example 使用

iBator的下載和安裝

安裝:見《Eclipse 外掛安裝》 安裝完成後,“File” —> "New" —> "Other..."

iBatis 程式碼自動生成工具 iBator - 低調的華麗 - 輝色空間

選擇專案名  —> "New" —> "Other..." —> “Next” —> 如圖

iBatis 程式碼自動生成工具 iBator - 低調的華麗 - 輝色空間

點選“Finish”。就會在IBATORTest/ibatorConfig/目錄中生成ibatorConfig.xml檔案。

iBatis 程式碼自動生成工具 iBator - 低調的華麗 - 輝色空間

然後再修改ibatorConfig.xml檔案,修改後的檔案如下

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ibatorConfiguration PUBLIC "-//Apache Software Foundation//DTD Apache iBATIS Ibator Configuration 1.0//EN" 
 "

http://ibatis.apache.org/dtd/ibator-config_1_0.dtd" >
<ibatorConfiguration >
       <classPathEntry location="F:\javaEE\IBATORTest\lib\sqlserver.jar" />  /*SQL Server 資料庫驅動路徑*/
       <ibatorContext id="context1" >
               <jdbcConnection driverClass="com.microsoft.jdbc.sqlserver.SQLServerDriver" 
                 connectionURL
="jdbc:Microsoft:sqlserver://localhost:1433;DatabaseName=demo" userId="sa" password="joe" />
               <javaModelGenerator targetPackage="com.demo.ibatis.beans" targetProject="IBATORTest" />
               <sqlMapGenerator targetPackage="com.demo.ibatis.beans.mapFiles" targetProject="IBATORTest" />
               <daoGenerator 
targetPackage
="com.demo.ibatis.dao" targetProject="IBATORTest" type="GENERIC-CI" />
               <table schema="dbo" tableName="user" catalog="demo" domainObjectName="User">
                         <generatedKey column="ID" sqlStatement="SQLSERVER" identity="true" type="post" />
               </table>
       </ibatorContext>
</ibatorConfiguration>  

滑鼠右鍵ibatorConfig.xml,如圖:

iBatis 程式碼自動生成工具 iBator - 低調的華麗 - 輝色空間

將會自動生成對映檔案和Domain層,還同時生成DAO層,使用者只需編寫Service層即可。 

iBator 資料庫操作

通過iBator匯出的檔案包括對映檔案、Domain類、DAO類。它匯出的Domain類和DAO類是依據iBator設計的框架生成的,其中包括了各種函式。我們要基於這些類來開發Service層程式碼。

新生成的DAO層的介面提供了以下操作函式:

int countByExample(UserExample example) thorws SQLException:按條件計數。
int deleteByPrimaryKey(Integer id) thorws SQLException:按主鍵刪除。
int deleteByExample(UserExample example) thorws SQLException:按條件刪除。
String/Integer insert(User record) thorws SQLException:插入 (返回值為id值)
User selectByPrimaryKey(Integer id) thorws SQLException:按主鍵查詢。
List<?>selectByExample(UserExample example) thorws SQLException:按條件查詢
List<?>selectByExampleWithBLOGs(UserExample example) thorws SQLException:按條件查詢(包括BLOB欄位)。只有當資料表中的欄位型別有為二進位制的才會產生。
int updateByPrimaryKey(User record) thorws SQLException:按主鍵更新
int updateByPrimaryKeySelective(User record) thorws SQLException:按主鍵更新值不為null的欄位
int updateByExample(User record, UserExample example) thorws SQLException:按條件更新
int updateByExampleSelective(User record, UserExample example) thorws SQLException:按條件更新值不為null的欄位

詳解:

UserDAOImpl userDAO = new UserDAOImpl(SqlMapClientFactory.getSqlMapClient());
:SqlMapClientFactory.getSqlMapClient():是自定義的類和方法,目的是獲取SqlMapClient.

① selectByPrimaryKey()

User user = userDAO.selectByPrimaryKey(100); 相當於select * from user where id = 100

② selectByExample() 和 selectByExampleWithBLOGs()

UserExample example = new UserExample();
Criteria criteria = example.createCriteria();
criteria.andUsernameEqualTo("joe");
criteria.andUsernameIsNull();
example.setOrderByClause("username asc,email desc");
List<?>list = userDAO.selectByExample(example);
相當於:select * from user where username = 'joe' and username is null order by username asc,email desc

注:在iBator 生成的檔案UserExample.java中包含一個static 的內部類 Criteria ,在Criteria中有很多方法,主要是定義SQL 語句where後的查詢條件。

③ insert()

User user = new User();
user.setId(101);
user.setUsername("test");
user.setPassword("123")
user.setEmail("[email protected]");
userDAO.insert(user);
相當於:insert into user(ID,username,password,email) values(101,'test','123','[email protected]');

 ④ updateByPrimaryKey() 和 updateByPrimaryKeySelective()

User user =new User();
user.setId(101);
user.setUsername("joe");
user.setPassword("joe");
user.setEmail("[email protected]");
userDAO.updateByPrimaryKey(user);
相當於:update user set username='joe',password='joe',email='[email protected]' where id=101

User user = new User();
user.setId(101);
user.setPassword("joe");
userDAO.updateByPrimaryKeySelective(user);
相當於:
update user set password='joe' where id=101

 updateByExample() 和 updateByExampleSelective()

UserExample example = new UserExample();
Criteria criteria = example.createCriteria();
criteria.andUsernameEqualTo("joe");
User user = new User();
user.setPassword("123");
userDAO.updateByPrimaryKeySelective(user,example);
相當於:update user set password='123' where username='joe'

 deleteByPrimaryKey()

userDAO.deleteByPrimaryKey(101);  相當於:delete from user where id=101

⑦ deleteByExample()

UserExample example = new UserExample();
Criteria criteria = example.createCriteria();
criteria.andUsernameEqualTo("joe");
userDAO.deleteByExample(example);
相當於:delete from user where username='joe'

⑧ countByExample()

UserExample example = new UserExample();
Criteria criteria = example.createCriteria();
criteria.andUsernameEqualTo("joe");
int count = userDAO.countByExample(example);
相當於:select count(*) from user where username='joe'

擴充套件DAO類實現更復雜的SQL

iBator外掛只是給我們產生了一個滿足基本功能的程式碼框架,比如:增、刪、改、查、條件、排序的使用,這些都是iBator工具匯出的函式實現的。但iBator不能給我們提供所有的函式,但由於iBatis框架是基於原生SQL的。因此,我們只需要在iBator程式碼外掛產生的程式碼基礎上進行擴充套件即可。擴招的方法當然是基於iBatis的對映檔案,只需要新增更多的<statement>、<select>等SQL宣告元素即可。

例:

<select id="getMaxUserid" resultClass="java.lang.Integer">
             <![CDATA[select max(id) from user]]>
</select>
<select id="getUsernameList" resultClass="java.lang.String">
             <![CDATA[select distinct username from user]]>
</select>

然後在UserDAOImpl.java中實現如下的兩個函式:
public Integer getMaxUserid() throws SQLException{
         return (Integer)sqlMapClient.queryForObject("users.getMaxUserid");
}
public List<?>getUsernameList() throws SQLException{
         List<?>list = sqlMapClient.queryForList(“users.getUsernameList”);
         return list;
}

相關推薦

iBatis 程式碼自動生成工具 iBator Example 使用

iBator的下載和安裝 安裝:見《Eclipse 外掛安裝》 安裝完成後,“File” —> "New" —> "Other..." 選擇專案名  —> "New" —> "Other..." —> “Next” —>

ibatis程式碼自動生成工具ibator修改備忘

由於對ibator瞭解的不夠深入,毅然決然的開始了修改ibator外掛的過程,修改的過程收穫很大,瞭解了這個外掛的諸多使用技巧。 1.自動生成的程式碼中的討厭的Example怎麼改名?    這個也是驅動我去修改ibator plugin的原動力,因為我懶,不想每次生成程式

Ibatis程式碼自動生成工具——Abator安裝與應用例項(圖解)

使用也比較簡單,以下做個例項來介紹: 一、環境準備 我的環境:Eclipse SDK  Version: 3.5.2                JDK1.6                Oracle9i 二、外掛安裝 1、點選"Help>In

Eclipse外掛:MyBatis Generator程式碼自動生成工具

MyBatis Generator是一款優秀的工具,可以幫助我們自動生成java實體類,mapper介面和xml,極大得簡化了開發流程,今天,就記錄下在eclipse中使用eclipse外掛整合MyBatis Generator的步驟; 【1:外掛安裝】Help--Eclipser Market

【MyBatis Generator】程式碼自動生成工具 generatorConfig.xml配置檔案詳解

MyBatis Generator官網地址:http://www.mybatis.org/generator/index.html MyBaris Generator中文地址:http://mbg.cndocs.ml/ 在MBG中,最主要也最重要的,就是generatorConfig.xml

分享一下我的三個程式碼自動生成工具類--助你解放雙手

零、前言: 1.RecyclerView的Adapter自動生成器(含ViewHolder) 2.自定義屬性的自定義View程式碼生成器(含自定義屬性的初始化) 3.svg圖示轉換為Android可用xml生成器 最近喜歡切割字串,這三個類是近期的作品,感覺挺好用的,在此分享一下 三個工具

MyBatis-Plus程式碼自動生成工具

簡介 官方文件:苞米豆 MyBatis-Plus(簡稱MP)是一個 MyBatis 的增強工具,在 Mybatis 的基礎上只做增強不做改變,為簡化開發、提高效率而生。 特性 無侵入:Mybatis-Plus 在 Mybatis 的基礎上進行擴充套件,只做增強不做改變,引

JavaWeb後端程式碼自動生成工具

工具介紹: 1、本工具用於java web後端基礎程式碼自動生成,包括controller層、service層、dao層、實體類、mybatis xml程式碼。 2、本工具基於mybatis generator 1.3.6,修改了原始碼,針對我大天朝的習慣優化了一下;

mybatis mybatis-generator 程式碼自動生成工具

一、簡介 mybatis generator是很好用的mybatis自動程式碼生成工具。最近公司使用maven和mybatis開發專案,手動寫入一個個實體類和mapper還有xml配置檔案感覺會很麻煩,使用mybatis generator只需要簡單的配置就能

程式碼自動生成工具(一)-Csv讀表程式碼自動生成工具

之前提到了自定義的Csv格式的表格讀取的一個工具類CsvReader 這裡我們實現一個可以對任意符合我們人為規定的格式的Csv檔案,自動生成其對應的讀表程式碼 本工具需要boost庫支援,本人用的是1.55.0 這裡首先定義Csv中支援的幾種列型別:FieldType:

mybatis-generator-mysql程式碼自動生成工具

流程:    1、匯入MybatisGenerator專案,在build path中修改jar包位置(mybatis-generator-core-1.3.2和mysql-jdbc)    2、修改generator.xml檔案        a.修改資料庫連線資訊<!

jnaerator:java呼叫動態庫的神器,JNA程式碼自動生成工具

眾所周知,java程式如果要呼叫動態庫(.so,.dll)的函式,最傳統方式是使用JNI技術,用JNI寫java呼叫介面程式碼是非常痛苦的,除錯也是比較麻煩的事兒,JNA推出後,大大降低了開發難度,java程式設計師只要為對應的動態庫定義java native方

開源:C# 程式碼自動生成工具,支援站點前後臺

  前言     寫這個專案有很長一段時間了,期間也修修改改,寫到最後,自己也沒咋用(研究方向變化了)。   正文     具體專案開源了:https://github.com/supperlitt/WebAutoCodeOnline (這個應該不算一個廣告文)     要說技術,感覺也沒啥

mybatis 自動生成工具使用遇到的坑,需要手動加分頁程式碼

mybatis自動化生成的程式碼xml檔案,如果包含有特殊型別的,比如text型別的欄位,經過自動化生成,會生成多一個包裝返回物件,以xxxWithBLOBS,結尾,繼承了baseResultMap的一個返回物件, 使用selectByExampleWithBLOBs

JFinal Tables自動生成對應ModelModel程式碼& JUnit 測試單元的編寫

      這幾天在研究JFinal,對ActiveRecord有點興趣,但其執行必須先將Table對應的Model註冊才行, 通過JFinal提供的Model生成工具對資料庫批量生成Model, 生成器的呼叫:package autogen; import javax.s

mybatis-generator 代碼自動生成工具

數據 pan mic 代碼自動生成 提示 mys .cn dao core 怎麽用mybatis-gennerator插件自動生成mybatis所需要的dao、bean、mapper xml文件。請看↓ 1、在D盤新建一個文件夾,命名:generator(或者其他盤其他名字

一個很好用的自動生成工具——mybatis generator

led ron 很好 user runtime rim mod 文件 path mybatis generator-自動生成代碼 準備材料:   一個文件夾,一個數據庫的驅動包,mybatis-generator-core-1.3.5.jar,一條生成語句   如圖:(我用

java圖形驗證碼生成工具web頁面校驗驗證碼

組合 line des resp word buffere 需要 case ali 最近做驗證碼,參考網上案例,發現有不少問題,特意進行了修改和完善。驗證碼生成器:[ht

laravel-admin自動生成模組,相關基礎配置

一、模型建立、資料遷移、以及關聯模型控制器 $ php artisan make:model Brand -m  //建立模型並生成遷移檔案 $ php artisan migrate  //執行遷移 $ php artisan admin:make BrandController --

Mybatis -程式碼自動生成(generatorConfig.xml)配置資訊詳解

<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE generatorConfiguration PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1