日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關咨詢
選擇下列產(chǎn)品馬上在線溝通
服務時間:8:30-17:00
你可能遇到了下面的問題
關閉右側工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
實戰(zhàn)解析:如何整合iBatis和Spring

Spring通過DAO模式,提供了對iBATIS的良好支持。SqlMapClient對象是iBATIS中的主要對象,我們可以通過配置讓spring來管理SqlMapClient對象的創(chuàng)建,繼而整合iBatis和Spring。

創(chuàng)新互聯(lián)建站主要從事網(wǎng)站制作、做網(wǎng)站、網(wǎng)頁設計、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務。立足成都服務博樂,10多年網(wǎng)站建設經(jīng)驗,價格優(yōu)惠、服務專業(yè),歡迎來電咨詢建站服務:18980820575

與hibernate類似,Spring 提供了SqlMapClientDaoSupport對象,我們的DAO可以繼承這個類,通過它所提供的SqlMapClientTemplate對象來操縱數(shù)據(jù)庫。看起來這些概念都與hibernate類似。

通過SqlMapClientTemplate來操縱數(shù)據(jù)庫的CRUD是沒有問題的,這里面關鍵的問題是事務處理。Spring提供了強大的聲明式事務處理的功能,我們已經(jīng)清楚hibernate中如何配置聲明式的事務,那么在iBATIS中如何獲得聲明式事務的能力呢?我們又怎樣整合iBatis和Spring呢?

***,我們需要了解的是spring通過AOP來攔截方法的調(diào)用,從而在這些方法上面添加聲明式事務處理的能力。典型配置如下:applicationContext-common.xml

 
 
 
  1.  
  2.  
  3.      
  4.  
  5.          
  6.  
  7.             
  8.  
  9.             
  10.  
  11.             
  12.  
  13.             
  14.  
  15.         
  16.  
  17.      
  18.  
  19.       
  20.  
  21.      
  22.  
  23.      
  24.  
  25.         
  26.  
  27.         
  28.  
  29.      

這些事務都是聲明在業(yè)務邏輯層的對象上的。 第二,我們需要一個事務管理器,對事務進行管理,實現(xiàn)整合iBatis和Spring的第二步。

 
 
 
  1.  
  2.  
  3.     
  4.  
  5.     
  6.  
  7.     
  8.  
  9.         
  10.  
  11.         
  12.  
  13.         
  14.  
  15.         
  16.  
  17.     

此后,我們需要讓spring來管理SqlMapClient對象,實現(xiàn)整合iBatis和Spring的第三步

 
 
 
  1.  
  2.  
  3.       classpath:sqlMapConfig.xml 
  4.  
  5.     

我們的sqlMapConfig.xml就可以簡寫為:

 
 
 
  1.  
  2.  
  3.  
  4.     PUBLIC "-//ibatis.apache.org//DTD SQL Map Config 2.0//EN"        
  5.  
  6.     "http://ibatis.apache.org/dtd/sql-map-config-2.dtd"> 
  7.  
  8.  
  9.  
  10.     
  11.  
  12.        lazyLoadingEnabled="true" 
  13.  
  14.         useStatementNamespaces="true" /> 
  15.  
  16.      
  17.  
  18.    
  19.  
  20.  
  21.  
  22. User.xml:如下  
  23.  
  24.  
  25.  
  26.  
  27.     PUBLIC "-//ibatis.apache.org//DTD SQL Map 2.0//EN"        
  28.  
  29.     "http://ibatis.apache.org/dtd/sql-map-2.dtd"> 
  30.  
  31.  
  32.  
  33.   
  34.  
  35.   
  36.  
  37.   
  38.  
  39.   
  40.  
  41.     select * from t_user  
  42.  
  43.   
  44.  
  45.    
  46.  
  47.   
  48.  
  49.   select * from t_user where id=#id#  
  50.  
  51.   
  52.  
  53.    
  54.  
  55.   
  56.  
  57.   insert into t_user values (  
  58.  
  59.        null,#username#,#password#  
  60.  
  61.   )  
  62.  
  63.   
  64.  
  65.    
  66.  
  67.   
  68.  
  69.   update t_user set username = #username#,password=#password#  
  70.  
  71.   where id=#id#  
  72.  
  73.    
  74.  
  75.    
  76.  
  77.   
  78.  
  79.   delete from t_user where id=#id#  
  80.  
  81.   
  82.  
  83.  
  84.  

我們的DAO的編寫:

 
 
 
  1. package com.iabtis.dao.impl.ibatis;  
  2.  
  3. import java.util.List;  
  4.  
  5. import org.springframework.orm.ibatis.support.SqlMapClientDaoSupport;  
  6.  
  7. import com.ibatis.dao.UserDAO;  
  8.  
  9. import com.ibatis.crm.model.User;  
  10.  
  11. public class UserDAOImpl extends SqlMapClientDaoSupport implements UserDAO {  
  12.  
  13.     public void select(User user) {  
  14.  
  15.               getSqlMapClientTemplate().delete("selectUser ",user.getId());  
  16.  
  17.        }  
  18.  
  19.    public List findAll() {  
  20.  
  21.               return getSqlMapClientTemplate().queryForList("selectAllUsers ");  
  22.  
  23.        }  
  24.  
  25.        public void delete(User user) {  
  26.  
  27.               getSqlMapClientTemplate().delete("deleteUser ",user.getId());  
  28.  
  29.        }  
  30.  
  31.        public void save(User user) {  
  32.  
  33.               getSqlMapClientTemplate().insert("insertUser ",user);  
  34.  
  35.        }  
  36.  
  37.        public void update(User user) {  
  38.  
  39.               getSqlMapClientTemplate().update("updateUser ",user);  
  40.  
  41.        }  
  42.  
  43. }  

繼承SqlMapClientDaoSupport,要求我們注入SqlMapClient對象,因此,需要有如下的DAO配置,這是整合iBatis和Spring的***一步了

 
 
 
  1.  
  2.  
  3.       
  4.  
  5.  

這就是所有需要注意的問題了,此后就可以在業(yè)務邏輯層調(diào)用DAO對象了!


分享題目:實戰(zhàn)解析:如何整合iBatis和Spring
標題鏈接:http://www.5511xx.com/article/cdghehg.html