rss· 投稿· 设为首页· 加入收藏· 繁體版
当前位置: 火魔网 » 程序开发 » JavaEE

Struts2+Spring+ibatis整合之道

自己实在是懒得写,搜了一下,还真有人写,转自:http://developer.51cto.com/art/200907/137480.htm

另外:http://developer.51cto.com/art/200907/137450.htm


iBATIS Spring Struts2整合实例为你展现iBATIS Spring Struts2三者的整合实效,希望对你有所帮助。

    上篇iBATIS + Spring整合例子,今天补充一个新Spring + iBATIS整合的方式 ,这种方式使通过Spring注入SqlMapClientTemplate完成的。具体模式如下:

  •  /*  
  •  * UserDAOImpl3.java  
  •  */  
  •  
  • package net.chinaideal.samples.ibatis.dao;  
  •  
  • import org.springframework.orm.ibatis.SqlMapClientTemplate;  
  •  
  • import net.chinaideal.samples.ibatis.model.User;  
  •  
  • /**  
  •  * SpringiBatis - UserDAOImpl3.java  
  •  * ----------------------------------------------  
  •  * @version 0.1 2007-1-23  
  •  * @author Panglei(bj02267)  
  •  * ----------------------------------------------  
  •  * 说明:  
  •  * 整合可以将Spring的iBatis的SqlMapClientTemplate单独注入  
  •  */  
  • public class UserDAOImpl3 implements UserDAO {  
  •     private static final long serialVersionUID = -6615310540042830594L;  
  •     //iBatis SqlMapClientTemplate  
  •     protected SqlMapClientTemplate sqlMapClientTemplate;  
  •       
  •     /* (non-Javadoc)  
  •      * @see net.chinaideal.samples.ibatis.dao.UserDAO#getUserByUsername(java.lang.String)  
  •      */  
  •     public User getUserByUsername(String username) {  
  •         return (User) sqlMapClientTemplate.queryForObject("getUserbyUsername", username);  
  •     }  
  •  
  •     public SqlMapClientTemplate getSqlMapClientTemplate() {  
  •         return sqlMapClientTemplate;  
  •     }  
  •  
  •     public void setSqlMapClientTemplate(SqlMapClientTemplate sqlMapClientTemplate) {  
  •         this.sqlMapClientTemplate = sqlMapClientTemplate;  
  •     }  
  •  
  • applicationContext.xml文件:

  •  !-- Spring iBatis SqlMapClient --  
  •  bean id="sqlMapClient" class="org.springframework.orm.ibatis.SqlMapClientFactoryBean"  
  •         property name="configLocation" value="/WEB-INF/sqlmap-config.xml"/  
  •         property name="dataSource" ref="dataSource"/  
  •  /bean  
  •         
  •  !-- Spring iBatisTemplate --  
  •  bean id="sqlMapClientTemplate" class="org.springframework.orm.ibatis.SqlMapClientTemplate"  
  •        property name="sqlMapClient"  
  •            ref bean="sqlMapClient"/  
  •        /property  
  •  /bean  
  •  
  • !-- UserDAO方案三 --  
  • bean id="userDAO3" class="net.chinaideal.samples.ibatis.dao.UserDAOImpl3"  
  •      property name="sqlMapClientTemplate"  
  •           ref bean="sqlMapClientTemplate"/  
  •      /property  
  • /bean  
  • 再次基础上又增加Struts2作为整个应用的Web框架,由于Struts2和WebWork2没有什么大的区别.

    那么iBATIS Spring Struts2整合的实例就向你介绍到这里,希望这些实例对你有所帮助。

    -------------------------------------------------------另外一篇-----------------------------------------------------------------------------------------

    这是一个Spring + iBATIS整个的例中,本例子中使用了2种模式对Spring的iBATIS整合模式。

    Spring iBATIS整合模式一

    
    
  • /*  
  •  * UserDAO.java  
  •  *  
  •  * Create Version: 4.2.0  
  •  * Author: PangLei  
  •  * Create Date: 2005-04-21  
  •  *  
  •  * Copyright (c) 2005 UTStarcom(China) Corporation. All Right Reserved.  
  •  */ 
  •  
  • package net.chinaideal.samples.ibatis.dao;  
  •  
  • import java.sql.SQLException;  
  •  
  • import net.chinaideal.samples.ibatis.model.User;  
  •  
  • import com.ibatis.sqlmap.client.SqlMapClient;  
  •  
  • /**  
  •  * SpringiBatis - UserDAO.java  
  •  * ----------------------------------------------  
  •  * @version 0.1 2007-1-22  
  •  * @author Panglei(bj02267)  
  •  * ----------------------------------------------  
  •  * 说明:  
  •  * UserDAO 实现  
  •  * 这个实现通过Spring维护iBatis的SqlMapClient,具体调用还是通过iBatis的API完成。  
  •  * 这样实现的有点是在不使用Spring的时,由于使用的都是iBatis的API,所以可移植性较好。  
  •  *  
  •  */ 
  • public class UserDAOImpl implements UserDAO {  
  •     protected SqlMapClient sqlMapClient;  
  •      
  •     public User getUserByUsername(String username) {  
  •         try {  
  •             return (User) this.sqlMapClient.queryForObject("getUserbyUsername", username);  
  •         } catch (SQLException ex) {  
  •             ex.printStackTrace();  
  •         }  
  •         return null;  
  •     }  
  •  
  •     public SqlMapClient getSqlMapClient() {  
  •         return sqlMapClient;  
  •     }  
  •  
  •     public void setSqlMapClient(SqlMapClient sqlMapClient) {  
  •         this.sqlMapClient = sqlMapClient;  
  •     }  
  •      
  • Spring iBATIS整合模式二

    
    
  • /*  
  •  * UserDAOImpl2.java  
  •  *  
  •  * Create Version: 4.2.0  
  •  * Author: PangLei  
  •  * Create Date: 2005-04-21  
  •  *  
  •  * Copyright (c) 2005 UTStarcom(China) Corporation. All Right Reserved.  
  •  */ 
  •  
  • package net.chinaideal.samples.ibatis.dao;  
  •  
  • import net.chinaideal.samples.ibatis.model.User;  
  •  
  • import org.springframework.orm.ibatis.support.SqlMapClientDaoSupport;  
  •  
  • /**  
  •  * SpringiBatis - UserDAOImpl2.java  
  •  * ----------------------------------------------  
  •  * @version 0.1 2007-1-22  
  •  * @author Panglei(bj02267)  
  •  * ----------------------------------------------  
  •  * 说明:  
  •  * 模式2:UserDAOImpl2继承SqlMapClientDaoSupport类  
  •  * SqlMapClientDaoSupport这个类为Spring的ibatis模版类  
  •  * ibatis模版类提供很多模版方法,Spring提供了异常处理,使用比较方便。  
  •  * 例如:  
  •  * queryForObject(statename, args)等等。  
  •  *  
  •  * 但是这个方法用使用类Spring的SqlMapClientDaoSupport,所以需要Spring的支持简化了编码的过程,移植性不够。  
  •  */ 
  •  
  • public class UserDAOImpl2 extends SqlMapClientDaoSupport implements UserDAO {  
  •  
  • /* (non-Javadoc)  
  • * @see net.chinaideal.samples.ibatis.dao.UserDAO#getUserByUsername(java.lang.String)  
  • */ 
  • public User getUserByUsername(String username) {  
  •     return (User)getSqlMapClientTemplate().queryForObject("getUserbyUsername", username);  
  • }  
  •  
  • }  
  •  
  • 程序下载http://www.china-ideal.net/files/SpringiBatis.zip

    Spring iBATIS整合的模式就向你介绍到这里,希望这个Spring iBATIS整合的模式对你有所帮助。

    顶一下
    (0)
    踩一下
    (0)