Spring框架学习[JdbcTemplate封装Jdbc](九)

2014-11-24 03:05:49 · 作者: · 浏览: 9
his.nativeJdbcExtractor.getNativeConnection(con); } //根据数据库连接创建CallableStatement cs = csc.createCallableStatement(conToUse); applyStatementSettings(cs); CallableStatement csToUse = cs; //如果JdbcTemplate指定了本地jdbc提取器,则将CallableStatement转换为 //本地CallableStatement if (this.nativeJdbcExtractor != null) { csToUse = this.nativeJdbcExtractor.getNativeCallableStatement(cs); } //调用相应回调对象的方法,执行jdbc操作 T result = action.doInCallableStatement(csToUse); handleWarnings(cs); return result; } catch (SQLException ex) { //清除CallableStatement参数 if (csc instanceof ParameterDisposer) { ((ParameterDisposer) csc).cleanupParameters(); } String sql = getSql(csc); csc = null; //关闭CallableStatement JdbcUtils.closeStatement(cs); cs = null; //释放数据库连接 DataSourceUtils.releaseConnection(con, getDataSource()); con = null; //将jdbc异常封装为Spring异常 throw getExceptionTranslator().translate("CallableStatementCallback", sql, ex); } finally { //清除CallableStatement参数 if (csc instanceof ParameterDisposer) { ((ParameterDisposer) csc).cleanupParameters(); } //关闭CallableStatement JdbcUtils.closeStatement(cs); //释放数据库连接 DataSourceUtils.releaseConnection(con, getDataSource()); } }