自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

詳解iBaits中SqlMapClientTemplate的使用

開發(fā) 后端
Apache iBatis(現(xiàn)已遷至Google Code下發(fā)展,更名為MyBatis)是當(dāng)前IT項目中使用很廣泛的一個半自動ORM框架,區(qū)別于Hibernate之類的全自動框架,iBatis對數(shù)據(jù)庫的操作擁有更加靈活的控制,對于那些經(jīng)常需要調(diào)用本地數(shù)據(jù)庫函數(shù)自定義SQL語句,或是喜歡自己優(yōu)化SQL執(zhí)行效率的開發(fā)者來說,iBatis是一個非常不錯的選擇。

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

1、SqlMapClientFactoryBean 的裝配

SqlMapClientFactoryBean是SqlMapClientTemplate使用的基礎(chǔ),如果在

SpringFramework應(yīng)用中沒有裝配SqlMapClientFactoryBean,那么SqlMapClientTemplate將不可用,報空指針錯誤。

Java代碼

  1. <bean id="sqlMapClient" class="org.springframework.orm.ibatis.SqlMapClientFactoryBean">     
  2.     <property name="configLocation" value="/WEB-INF/sqlmap-config.xml"/>      
  3.     <property name="dataSource" ref="dataSource"/>      
  4.     <property name="lobHandler" ref="oracleLobHandler"/>      
  5. bean>  

 

 

 

2、繼承使用SqlMapClientDaoSupport類

聲明Java類:

Java代碼

 

  1.    ......     
  2.     import org.springframework.orm.ibatis.support.SqlMapClientDaoSupport;     
  3.     ......     
  4.     public class ReportDAOImpl extends SqlMapClientDaoSupport {     
  5.         ......     
  6.     }     
  7.     
  8. SpringFramework配置文件中裝配Java類:     
  9.     "reportDao" class="com.test.dao.ReportDAOImpl">     
  10.         "sqlMapClient" ref="sqlMapClient"/>      
  11.       

 

SpringFramework配置文件中裝配Java類:

 

3、使用SqlMapClientTemplate查詢

Java代碼:

當(dāng)執(zhí)行沒有參數(shù)的查詢時:

Java代碼

  1. List result = getSqlMapClientTemplate().queryForList("TestSpace.qryTest");   

 

"TestSpace"為iBatis SqlMap文件的命名空間;"qryTest"為iBatis SqlMap的查詢方法id

當(dāng)按照主鍵獲取某條記錄信息時:

Java代碼

  1. Long id = new Long("2");     
  2.    Object resultObj = getSqlMapClientTemplate().queryForObject("TestSpace.getTest", id);    

 

當(dāng)按照某些條件查詢時:

Java代碼

  1. ObjectA objA = new ObjectA();     
  2.     objA.setParam1("test1");     
  3.     objA.setParam2("test2");     
  4.     ......     
  5.     List result = getSqlMapClientTemplate().queryForList("TestSpace.qryTestByParam", objA);    

如果需要取4~40條數(shù)據(jù):

List result = getSqlMapClientTemplate().queryForList("TestSpace.qryTestByParam", objA, 4, 40);

也可以返回Map

Java代碼

  1. Map result = getSqlMapClientTemplate().queryForMap("TestSpace.qryTestByParam", objA, "MapKey");  

 

4、使用SqlMapClientTemplate添加數(shù)據(jù)

Java代碼:

 

  1. ObjectA objA = new ObjectA();  

Java代碼

  1. objA.setParam1("test1");     
  2.    objA.setParam2("test2");     
  3.    ......     
  4.    getSqlMapClientTemplate().insert("TestSpace.insertTest", objA);    

 

5、使用SqlMapClientTemplate更新數(shù)據(jù)

Java代碼:

Java代碼

  1. ObjectA objA = new ObjectA();     
  2.     objA.setParam1("test1");     
  3.     objA.setParam2("test2");     
  4.     ......     
  5.     getSqlMapClientTemplate().update("TestSpace.updateTest", objA);    

 

更新前20條記錄:

Java代碼

  1. getSqlMapClientTemplate().update("TestSpace.updateTest", objA, 20);   

 

6、使用SqlMapClientTemplate刪除數(shù)據(jù)

Java代碼:

Java代碼

  1. Long id = new Long("2");     
  2.    getSqlMapClientTemplate().delete("TestSpace.deleteTest", id);  

【編輯推薦】

  1. Hibernate批量更新與刪除實例淺析
  2. 簡述Hibernate Synchronizer學(xué)習(xí)筆記
  3. Hibernate column屬性簡介
  4. 概括Hibernate查詢語言
  5. Hibernate cartridge學(xué)習(xí)總結(jié)
責(zé)任編輯:金賀 來源: JavaEye博客
相關(guān)推薦

2016-09-18 16:58:09

JavaProperties

2010-09-08 17:15:45

SQL循環(huán)結(jié)構(gòu)

2021-04-13 09:20:21

JavaUnsafejava8

2010-03-19 16:07:41

Exchange 20

2011-05-13 09:16:03

Mysqlmysqldump命令

2011-07-20 09:16:02

MongoDB索引稀疏索引

2009-08-17 08:42:48

LinuxScreen命令使用技巧

2011-08-15 14:27:51

CocoaRunLoop

2022-06-26 08:39:19

Spring容器字段格式化

2009-10-29 09:15:32

ASP.NET MVCDropDownLis

2010-12-16 10:00:20

QtVisual Stud

2025-01-20 07:00:00

2010-07-22 15:22:58

BlackBerry開

2010-10-09 10:30:03

JS event

2015-04-16 10:51:05

paaspcfhaproxy

2009-06-29 17:57:30

ApplicationJSP

2009-06-17 11:27:00

setClip方法J2ME

2009-07-20 14:24:13

Math.pow()方Java ME

2019-11-07 23:48:12

shell腳本getopts

2025-04-24 10:40:46

CatalogFlink SQL元數(shù)據(jù)
點贊
收藏

51CTO技術(shù)棧公眾號