作者:
ssccg (23)
2016-03-08 20:41:00temp 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再用排程删掉
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吧
你可以试着写一个Procedure,把资料送进去后再处理
temp table可以用stored procedure开 执行完就消失了不需要管连线 要做这种一堆处理的写在里面速度会快点