iBATIS用法之SqlMapTemplate内部类详解
创始人
2024-04-19 11:40:19
0

iBATIS用法中的SqlMapTemplate类主要查找和String statementName相对应的MappedStatement对象,并调用MappedStatement的相应的方法,但SqlMapTemplate的查询方法,都有以下的几个操作。

1、必须先判断XML文件中是否定义String statementName;

2、如果如果存在则生成相应的MappedStatement对象;

3、并且获得该线程所对应的Connection对象;

4、然后调用MappedStatement对象相应的操作数据库的方法;

5、释放Connection对象等。

在以上iBATIS用法其中只有第4步每个方法会有所变化,其他的方法都一样。SqlMapTemplate不用的方法第4步调用MappedStatement的不同方法,但参数都一样。

抽象类SqlMapCallback的代码如下:

  1. public interface SqlMapCallback {  
  2.    
  3.       Object doInMappedStatement(MappedStatement stmt, Connection con) throws    SQLException;  
  4.    
  5.  } 

实现类SqlMapTemplate的调用抽象的方法代码如下:

  1. public Object execute(String statementName, SqlMapCallback action) throws      DataAccessException {  
  2.      Assert.notNull(this.sqlMap, "No SqlMap specified");  
  3.      MappedStatement stmt = this.sqlMap.getMappedStatement(statementName);  
  4.      Connection con = DataSourceUtils.getConnection(getDataSource());  
  5.      try {  
  6.           return action.doInMappedStatement(stmt, con);  
  7.      }  
  8.      catch (SQLException ex) {  
  9.           throw getExceptionTranslator().translate("SqlMap operation", null,      ex);  
  10.      }  
  11.      finally {  
  12.           DataSourceUtils.releaseConnection(con, getDataSource());  
  13.      }  

SqlMapTemplate方法中调用内部抽象方法,并实现内部类抽象方法的方法体代码如下。

  1. public Object executeQueryForObject(String statementName, final Object      parameterObject)  
  2.      throws DataAccessException {  
  3.           return execute(statementName, new SqlMapCallback() {  
  4.                public Object doInMappedStatement(MappedStatement stmt,      Connection      con)      throws SQLException {  
  5.                return stmt.executeQueryForObject(con, parameterObject);  
  6.           }  
  7.           });  

iBATIS用法之SqlMapTemplate内部类的介绍就向你讲解到这里,希望对你有所帮助。

【编辑推荐】

  1. iBATIS动态查询的实现浅析
  2. iBATIS DAO入门基础教程
  3. iBATIS.NET配置六点总结
  4. iBATIS SQLMap配置Demo浅析
  5. iBATIS参数理解浅析

相关内容

热门资讯

如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
施耐德电气数据中心整体解决方案... 近日,全球能效管理专家施耐德电气正式启动大型体验活动“能效中国行——2012卡车巡展”,作为该活动的...
20个非常棒的扁平设计免费资源 Apple设备的平面图标PSD免费平板UI 平板UI套件24平图标Freen平板UI套件PSD径向平...
德国电信门户网站可实时显示全球... 德国电信周三推出一个门户网站,直观地实时提供其安装在全球各地的传感器网络检测到的网络攻击状况。该网站...
为啥国人偏爱 Mybatis,... 关于 SQL 和 ORM 的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行...
《非诚勿扰》红人闫凤娇被曝厕所... 【51CTO.com 综合消息360安全专家提醒说,“闫凤娇”、“非诚勿扰”已经被黑客盯上成为了“木...
2012年第四季度互联网状况报... [[71653]]  北京时间4月25日消息,据国外媒体报道,全球知名的云平台公司Akamai Te...