<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    MDA/MDD/TDD/DDD/DDDDDDD
    posts - 536, comments - 111, trackbacks - 0, articles - 0
      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理
    resultSetType 的可選值有: ResultSet.TYPE_FORWARD_ONLY ResultSet.TYPE_SCROLL_INSENSITIVEResultSet.TYPE_SCROLL_SENSITIVE
    1)
    TYPE_FORWARD_ONLY是默認值, 僅支持結果集forward ,不支持滾動,也不是 SENSITIVE的
    2)
    ResultSet.TYPE_SCROLL_INSENSITIVE,
    支持結果集backforwardlastfirst 等操作,對其它session對數據庫中數據做出的更改是不敏感的
    原因:JDBC對數據庫進行數據查詢executeQuery時,數據庫會創建查詢結果的cache和cursor,如下面sql:
    ??? select name,id from foo
    ??? 用jdbc執行上面的sql語句時,數據庫會把foo表所有記錄的name和id字段緩存到cache中,之后cache和真正的數據庫數據文件沒有任何聯系了,foo表發生的改變在查詢完成后不會自動同步到cache上去,因此TYPE_SCROLL_INSENSITIVE對選擇數據做出的更改是不敏 感,不可見。
    3)ResultSet.TYPE_SCROLL_SENSITIVE
    支持結果集backforwardlastfirst 等操作,對其它session對數據庫中數據做出的更改是敏感的,即其他session 修改了數據庫中的數據,會反映到本結果集中
    上面的select name,id from foo語句用TYPE_SCROLL_SENSITIVE的Statement來執行,會轉化成以下的sql語句:
    ??? select rowid from foo
    ??? 數據庫這時候是把foo表所有記錄的rowid緩存到cache中,用戶代碼在fetch記錄時,再繼續做以下查詢:
    ??? select name,id from foo where rowid=?
    ??? 因此這時候發生的查詢是實時從真正的數據庫數據文件中取,因此對期間發生的數據更改是可見的,敏感的。但是這種可見性僅限于update操作,而 insert和delete同樣是不可見的。因為如果查詢發生在insert之前,insert生成的rowid并不會反應在cache中的rowid結果集上。在一個記錄的rowid已經緩存到cache中,這時候被刪除了,但一般數據庫的刪除是標記刪除,也就是說rowid對應那行記錄并沒有真正從數 據庫文件中抹去,一般是可以再次取到記錄的。

    結論:是否SENSITIVE與fetchsize沒有什么關系。是否SENSITIVE是告訴數據庫如何作查詢的緩存。fetchsize是客戶端jdbc的設置。

    另外oracle的
    fetchsize默認為10
    stmt.setFetchSize(0)時stmt.getFetchSize()=1
    0
    stmt.setFetchSize(1)時stmt.getFetchSize()=1

    另外如果查詢的sql復雜時,我發現就算設為
    ResultSet.TYPE_SCROLL_SENSITIVE也不起作用,如
    select t.*? from test t left join testp p on t.pid=p.id where p.title like '%國%',在運行中修改title的值,發現仍然可以取到。是否可以理解為SENSITIVE只對查詢的主表起作用。

    摘自:
    http://www.javaeye.com/topic/128636
    http://www.javaeye.com/topic/560109
    http://www.javaeye.com/topic/418604
    主站蜘蛛池模板: 亚洲国产精品国自产拍电影| 亚洲av无码av制服另类专区| 亚洲 暴爽 AV人人爽日日碰| 日韩国产免费一区二区三区| 亚洲国产午夜电影在线入口| 午夜性色一区二区三区免费不卡视频 | 四虎永久免费影院在线| 亚洲变态另类一区二区三区| 日韩a在线观看免费观看| 国内成人精品亚洲日本语音| 亚洲精品久久久www| 91精品成人免费国产| 亚洲永久永久永久永久永久精品| 99精品视频免费观看| 亚洲五月综合网色九月色| 免费观看的a级毛片的网站| 黄色a三级免费看| 亚洲一区二区三区影院| 91禁漫免费进入| 国产精品亚洲综合久久| 亚洲 无码 在线 专区| 大地影院MV在线观看视频免费 | 美女免费精品高清毛片在线视| 亚洲熟伦熟女新五十路熟妇| 拍拍拍无挡免费视频网站| 亚洲成A∨人片在线观看无码| 在线免费观看视频你懂的| 一级毛片在线免费视频| 精品亚洲成AV人在线观看| 成人免费视频小说| 国产激情久久久久影院老熟女免费 | 久草免费福利视频| 亚洲天堂免费在线| 2022中文字字幕久亚洲| 中国xxxxx高清免费看视频| 亚洲a∨无码一区二区| 午夜亚洲www湿好大| 免费看的黄色大片| 日本人成在线视频免费播放| 亚洲熟妇无码一区二区三区| 国产精品国产亚洲精品看不卡|