iBatis 程式碼自動生成工具 iBator 及 Example 使用
iBator的下載和安裝
安裝:見《Eclipse 外掛安裝》 安裝完成後,“File” —> "New" —> "Other..."
選擇專案名 —> "New" —> "Other..." —> “Next” —> 如圖
點選“Finish”。就會在IBATORTest/ibatorConfig/目錄中生成ibatorConfig.xml檔案。
然後再修改ibatorConfig.xml檔案,修改後的檔案如下
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ibatorConfiguration PUBLIC "-//Apache Software Foundation//DTD Apache iBATIS Ibator Configuration 1.0//EN"
"
<ibatorConfiguration >
<classPathEntry location="F:\javaEE\IBATORTest\lib\sqlserver.jar" /> /*SQL Server 資料庫驅動路徑*/
<ibatorContext id="context1" >
<jdbcConnection driverClass="com.microsoft.jdbc.sqlserver.SQLServerDriver"
connectionURL
<javaModelGenerator targetPackage="com.demo.ibatis.beans" targetProject="IBATORTest"
/>
<sqlMapGenerator targetPackage="com.demo.ibatis.beans.mapFiles" targetProject="IBATORTest"
/>
<daoGenerator
<table schema="dbo" tableName="user" catalog="demo" domainObjectName="User">
<generatedKey column="ID" sqlStatement="SQLSERVER" identity="true" type="post"
/>
</table>
</ibatorContext>
</ibatorConfiguration>
滑鼠右鍵ibatorConfig.xml,如圖:
將會自動生成對映檔案和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自動生成對應Model及Model程式碼& 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