iBATIS用法之SqlMapTemplate内部类详解

开发 后端
iBATIS用法之SqlMapTemplate内部类向你介绍iBATIS SqlMapTemplate内部类的具体用法。

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参数理解浅析
责任编辑:仲衡 来源: cnblogs
相关推荐

2020-01-15 11:14:21

Java算法排序

2020-12-14 10:23:23

Java内部类外部类

2011-03-29 14:11:15

内部类

2023-10-19 13:24:00

Java工具

2009-07-15 11:43:13

<iterate>标签

2009-06-11 13:08:29

Java内部类Java编程思想

2009-08-26 18:00:07

C#内部类

2023-03-06 07:53:36

JavaN种内部类

2011-04-19 09:14:59

Ibatis

2011-07-21 15:44:33

Java内部类

2019-12-23 14:32:38

Java内部类代码

2011-03-15 10:41:05

内部类

2009-07-29 09:18:49

Java内部类

2012-04-17 11:21:50

Java

2020-09-21 07:00:42

Java内部类接口

2015-12-08 09:05:41

Java内部类

2010-08-31 08:51:58

marginCSS

2021-02-08 08:45:18

Java内部类Object类

2011-11-23 10:59:18

Javafinal

2020-01-12 19:10:30

Java程序员数据
点赞
收藏

51CTO技术栈公众号