iBATIS中SqlMapTemplate内部类如何使用
iBATIS中SqlMapTemplate内部类如何使用,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。
云县ssl适用于网站、小程序/APP、API接口等需要进行数据传输应用场景,ssl证书未来市场广阔!成为成都创新互联公司的ssl证书销售渠道,可以享受市场价格4-6折优惠!如果有意向欢迎电话联系或者加微信:18982081108(备注:SSL证书合作)期待与您的合作!
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内部类如何使用的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注创新互联行业资讯频道,感谢各位的阅读!
分享标题:iBATIS中SqlMapTemplate内部类如何使用
本文URL:http://scyanting.com/article/ihiggh.html