读书人

Spring iBATIS调整实例演示

发布时间: 2012-12-24 10:43:14 作者: rapoo

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);  }   }   



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" value="/WEB-INF/sqlmap-config.xml"/          property name="dataSource" ref="dataSource"/   /bean           !-- Spring iBatisTemplate --   bean id="sqlMapClientTemplate" class="net.chinaideal.samples.ibatis.dao.UserDAOImpl3"       property name="sqlMapClientTemplate"            ref bean="sqlMapClientTemplate"/       /property  /bean


参见
http://developer.51cto.com/art/200907/137470.htm

读书人网 >编程

热点推荐