JdbcTemplate的callback
JdbcTemplate的CallBack回撥機制很巧妙,算是aop的一種實現吧
使用JdbcTemplate省掉了我們開啟和關閉connection的操作,同時需要一提的是在CallBack介面實現類的Connection處於auto-commit狀態,在CallBack的實現方法不能進行事物管理。
execute程式碼
public Object execute(ConnectionCallback action) throws DataAccessException {
Assert.notNull(action, "Callback object must not be null");
Connection con = DataSourceUtils.getConnection(getDataSource());
try {
Connection conToUse = con;
if (this.nativeJdbcExtractor != null) {
// Extract native JDBC Connection, castable to OracleConnection or the like.
conToUse = this.nativeJdbcExtractor.getNativeConnection(con);
}
else {
// Create close-suppressing Connection proxy, also preparing returned Statements.
conToUse = createConnectionProxy(con);
}
return action.doInConnection(conToUse);
}
catch (SQLException ex) {
// Release Connection early, to avoid potential connection pool deadlock
// in the case when the exception translator hasn't been initialized yet.
DataSourceUtils.releaseConnection(con, getDataSource());
con = null;
throw getExceptionTranslator().translate("ConnectionCallback", getSql(action), ex);
}
finally {
DataSourceUtils.releaseConnection(con, getDataSource());
}
}
CallBack是一個介面,其中定義了doInConnection(conn),把要寫的邏輯寫在此方法中。
我們只需要傳入一個conn即可,建立conn是前處理,關閉conn是後處理。 免去了這些繁瑣的操作。JdbcTemplate的其它方法也是利用CallBack實現的
相關文章
- JdbcTemplate查詢資料 三種callback之間的區別JDBC
- JdbcTemplate的使用JDBC
- JdbcTemplateJDBC
- 抽取JDBCTemplateJDBC
- Java CallbackJava
- Array.prototype.forEach(callback) 的 callback 到底執行了幾次?
- Promise不是CallbackPromise
- JdbcTemplate基礎JDBC
- jQuery Callback 方法jQuery
- Callback詳解
- Spring 的 JdbcTemplate 和 JdbcDaoSupportSpringJDBC
- JdbcUtil和JdbcTemplate的封裝JDBC封裝
- Spring 系列之jdbcTemplate的使用SpringJDBC
- 獲取jdbctemplate的一種方法JDBC
- android下的callback機制Android
- JDBCTemplate--介紹JDBC
- jdbctemplate事務管理JDBC
- js 回撥 callbackJS
- Callback 與 Promise 間的橋樑 —— promisifyPromise
- Spring框架|整合JdbcTemplateSpring框架JDBC
- SpringBoot使用JdbcTemplateSpring BootJDBC
- 怎麼promisify(promise ⇄ callback)Promise
- 詳解jdbcTemplate和namedParameterJdbcTemplateJDBC
- Spring boot 五 jdbcTemplateSpring BootJDBC
- JdbcTemplate學習筆記JDBC筆記
- jquery pass parameter to ajax callbackjQuery
- jdbctemplate與事務管理JDBC
- jdbcTemplate使用總結1JDBC
- 回撥函式(CallBack)函式
- Callback在C\C++中的實現C++
- com.css.common.jdbcTemplate中的類CSSJDBC
- C++回撥函式(callback)的使用C++函式
- JdbcTemplate調儲存過程JDBC儲存過程
- 解決小程式 callback hell
- day14-JdbcTemplate-01JDBC
- springboot整合使用JdbcTemplateSpring BootJDBC
- #Spring JdbcTemplate入門@FDDLCSpringJDBC
- 關於 js 中的回撥函式 callbackJS函式