新聞中心
Apache iBatis(現(xiàn)已遷至Google Code下發(fā)展,更名為MyBatis)是當前IT項目中使用很廣泛的一個半自動ORM框架,區(qū)別于Hibernate之類的全自動框架,iBatis對數(shù)據(jù)庫的操作擁有更加靈活的控制,對于那些經(jīng)常需要調(diào)用本地數(shù)據(jù)庫函數(shù)自定義SQL語句,或是喜歡自己優(yōu)化SQL執(zhí)行效率的開發(fā)者來說,iBatis是一個非常不錯的選擇。而得到廣泛應用的開源企業(yè)架構(gòu)SpringFramework,也很好的將其進行了集成,使得iBatis在 SpringFramework中的使用更加便利、快捷。開發(fā)者所要做的就是繼承SpringFramework中提供的 SqlMapClientDaoSupport類即可。下面,我將自己的使用經(jīng)驗與大家分享一下:

成都創(chuàng)新互聯(lián)公司堅持“要么做到,要么別承諾”的工作理念,服務領域包括:網(wǎng)站建設、做網(wǎng)站、企業(yè)官網(wǎng)、英文網(wǎng)站、手機端網(wǎng)站、網(wǎng)站推廣等服務,滿足客戶于互聯(lián)網(wǎng)時代的西鄉(xiāng)塘網(wǎng)站設計、移動媒體設計的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡建設合作伙伴!
1、SqlMapClientFactoryBean 的裝配
SqlMapClientFactoryBean是SqlMapClientTemplate使用的基礎,如果在
SpringFramework應用中沒有裝配SqlMapClientFactoryBean,那么SqlMapClientTemplate將不可用,報空指針錯誤。
Java代碼
- bean>
2、繼承使用SqlMapClientDaoSupport類
聲明Java類:
Java代碼
- ......
- import org.springframework.orm.ibatis.support.SqlMapClientDaoSupport;
- ......
- public class ReportDAOImpl extends SqlMapClientDaoSupport {
- ......
- }
- SpringFramework配置文件中裝配Java類:
- "reportDao" class="com.test.dao.ReportDAOImpl">
- "sqlMapClient" ref="sqlMapClient"/>
SpringFramework配置文件中裝配Java類:
3、使用SqlMapClientTemplate查詢
Java代碼:
當執(zhí)行沒有參數(shù)的查詢時:
Java代碼
- List result = getSqlMapClientTemplate().queryForList("TestSpace.qryTest");
"TestSpace"為iBatis SqlMap文件的命名空間;"qryTest"為iBatis SqlMap的查詢方法id
當按照主鍵獲取某條記錄信息時:
Java代碼
- Long id = new Long("2");
- Object resultObj = getSqlMapClientTemplate().queryForObject("TestSpace.getTest", id);
當按照某些條件查詢時:
Java代碼
- ObjectA objA = new ObjectA();
- objA.setParam1("test1");
- objA.setParam2("test2");
- ......
- List result = getSqlMapClientTemplate().queryForList("TestSpace.qryTestByParam", objA);
如果需要取4~40條數(shù)據(jù):
List result = getSqlMapClientTemplate().queryForList("TestSpace.qryTestByParam", objA, 4, 40);
也可以返回Map
Java代碼
- Map result = getSqlMapClientTemplate().queryForMap("TestSpace.qryTestByParam", objA, "MapKey");
4、使用SqlMapClientTemplate添加數(shù)據(jù)
Java代碼:
- ObjectA objA = new ObjectA();
Java代碼
- objA.setParam1("test1");
- objA.setParam2("test2");
- ......
- getSqlMapClientTemplate().insert("TestSpace.insertTest", objA);
5、使用SqlMapClientTemplate更新數(shù)據(jù)
Java代碼:
Java代碼
- ObjectA objA = new ObjectA();
- objA.setParam1("test1");
- objA.setParam2("test2");
- ......
- getSqlMapClientTemplate().update("TestSpace.updateTest", objA);
更新前20條記錄:
Java代碼
- getSqlMapClientTemplate().update("TestSpace.updateTest", objA, 20);
6、使用SqlMapClientTemplate刪除數(shù)據(jù)
Java代碼:
Java代碼
- Long id = new Long("2");
- getSqlMapClientTemplate().delete("TestSpace.deleteTest", id);
【編輯推薦】
- Hibernate批量更新與刪除實例淺析
- 簡述Hibernate Synchronizer學習筆記
- Hibernate column屬性簡介
- 概括Hibernate查詢語言
- Hibernate cartridge學習總結(jié)
本文標題:詳解iBaits中SqlMapClientTemplate的使用
本文URL:http://m.5511xx.com/article/cosjced.html


咨詢
建站咨詢
