[問題] Spring JDBC可以控制特定Connection嗎?

作者: aegis105 (NO)   2016-03-08 20:07:47
各位JAVA前輩好
先描述一下目前狀況
作者: ssccg (23)   2016-03-08 20:41:00
temp table是在commit的時候清空,跟connection無關你需要的是Transaction沒有用transaction時JdbcTemplate每個動作會auto commit忘了問哪種DB,因為你說的像oracle的所以上面是說oracle的你table A資料作完就不用了,那為什麼要commit?oracle的temp table是在commit(結束transaction時清空)所以就是開一個transaction中作完insert、join select之後再commit我猜你把commit當成insert...
作者: yyc1217 (somo)   2016-03-08 23:04:00
建立connection的成本蠻大的 如果太頻繁的確會造成影響這也是為什麼有connection pool 用query清空也許比較好或是每次建立不同的temp表 db再用排程刪掉
作者: adrianshum (Alien)   2016-03-09 01:10:00
Oracle temp table 建立時可指明commit 或connectionclose 時清空。另,因為connection pool 並不會真的close connection,類似情況下不建議用後者
作者: ssccg (23)   2016-03-09 02:56:00
我不知道可以設成connection close時清空,不過因為pool的關係通常是用commit時清空的用法吧如果是connection時清空,在用pool的情況下你只能自己每個transaction去做trucate了只要有用connection pool,上層取到的connection都是wrap過的,你close都只是把connection還回pool,不能真的關掉可以要求改DB定義的話去換成on commit delete吧
作者: cug990617 (CUG)   2016-03-09 13:23:00
你可以試著寫一個Procedure,把資料送進去後再處理
作者: j16598231 (滎鶄)   2016-03-09 21:36:00
試試用batch?
作者: kiwatami (悠游自在)   2016-03-10 12:02:00
temp table可以用stored procedure開 執行完就消失了不需要管連線 要做這種一堆處理的寫在裡面速度會快點

Links booklink

Contact Us: admin [ a t ] ucptt.com