温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

iBATIS中SqlMapTemplate内部类如何使用

发布时间:2021-06-23 15:07:49 来源:亿速云 阅读:155 作者:Leah 栏目:编程语言

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的代码如下:

public interface SqlMapCallback {           Object doInMappedStatement(MappedStatement stmt, Connection con) throws    SQLException;      }

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

public Object execute(String statementName, SqlMapCallback action) throws      DataAccessException {       Assert.notNull(this.sqlMap, "No SqlMap specified");       MappedStatement stmt = this.sqlMap.getMappedStatement(statementName);       Connection con = DataSourceUtils.getConnection(getDataSource());       try {            return action.doInMappedStatement(stmt, con);       }       catch (SQLException ex) {            throw getExceptionTranslator().translate("SqlMap operation", null,      ex);       }       finally {            DataSourceUtils.releaseConnection(con, getDataSource());       }  }

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

public Object executeQueryForObject(String statementName, final Object      parameterObject)       throws DataAccessException {            return execute(statementName, new SqlMapCallback() {                 public Object doInMappedStatement(MappedStatement stmt,      Connection      con)      throws SQLException {                 return stmt.executeQueryForObject(con, parameterObject);            }            });  }

看完上述内容,你们掌握iBATIS中SqlMapTemplate内部类如何使用的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注亿速云行业资讯频道,感谢各位的阅读!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI