日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

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

新聞中心

這里有您想知道的互聯(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)頁設(shè)計、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)博樂,10多年網(wǎng)站建設(shè)經(jīng)驗,價格優(yōu)惠、服務(wù)專業(yè),歡迎來電咨詢建站服務(wù):18980820575

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

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

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

這些事務(wù)都是聲明在業(yè)務(wù)邏輯層的對象上的。 第二,我們需要一個事務(wù)管理器,對事務(wù)進行管理,實現(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è)務(wù)邏輯層調(diào)用DAO對象了!


文章名稱:實戰(zhàn)解析:如何整合iBatis和Spring
文章來源:http://www.dlmjj.cn/article/cdghehg.html