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" 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﹥



参见
http://developer.51cto.com/art/200907/137470.htm
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值