java oracle临时表,JdbcTemplate操作oracle的临时表
使用spring 的 JdbcTemplate 進行sql 的操作, 對于每一次的如:query, update, batchUpdate,execute 這些方法, 執行一次都是調用不同的 Connection的.
所以如果你是對 oracle 的臨時表進行數據操作, 你update一次后, 在query 是讀取不到臨時表的數據的, 因為這兩次的操作對應的Connection是不同的.
為了能使用oracle 的臨時表, 就需要對每個操作提供一個相同 Connection, 以后的所有操作都跟這個 Connection產生的 Statement, PreparedStatement, CallableStatement 相關, 并且通過這些對象的getConnection() 方法也可以很容易就取得原來的 connection 對象.
由于以前沒用過Spring? 的 JdbcTemplate, 所以邊工作的時候邊查詢 JdbcTemplate 的源代碼, 寫寫一些小功能測試.
其實JdbcTemplate 里面很多方法的返回的結果都是用到了 execute() 這個方法的, 所以用獲取同一個 Connection 對象, 就要從 execute() 入手.
1. execute(ConnectionCallback action)
在JdbcTempate 的execute() 方法里面,
//-------------------------------------------------------------------------
// Methods dealing with a plain java.sql.Connection
//-------------------------------------------------------------------------
public Object execute(ConnectionCallback action) throws DataAccessException;
在這個方法里面接口 ConnectionCallback 定義如下
public interface ConnectionCallback {
Object doInConnection(Connection con) throws SQLException, DataAccessException;
}
在接口 ConnectionCallback? 中聲明的方法Object doInConnection(Connection con) 中提供了參數 Connection conn, 這個剛好就是我們所需要的.??我們在實現 doInConnection(Connection con)? 方法的過程中, 就可以自由使用 Connection conn.
2. 實現 ConnectionCallback? 的方法有兩種
總結
以上是生活随笔為你收集整理的java oracle临时表,JdbcTemplate操作oracle的临时表的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 星汉灿烂下部什么时候播
- 下一篇: 5月 20 日周杰伦演唱会即将重映,你会