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