<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免费观看| 无遮挡呻吟娇喘视频免费播放| 亚洲精品国产福利一二区| jizz免费在线观看| 亚洲精品视频免费在线观看| 浮力影院第一页小视频国产在线观看免费 | 亚洲成av人影院| 无码人妻精品中文字幕免费| 国产精品亚洲va在线观看| 亚洲综合丁香婷婷六月香| 亚洲AV综合色区无码一区| 亚洲精品成人久久久| 一个人免费视频在线观看www| 免费大片黄手机在线观看 | 精品久久8x国产免费观看| 亚洲人成免费电影| 亚洲一区二区三区深夜天堂| 伊人免费在线观看| 蜜桃精品免费久久久久影院| 亚洲国产精品久久网午夜| 无码国产精品一区二区免费I6| 久久亚洲精品无码av| 国产精品亚洲αv天堂无码| 久久久精品免费视频| 亚洲1234区乱码| 免费看国产精品麻豆| 东方aⅴ免费观看久久av| 久久精品亚洲AV久久久无码| 国产成人无码a区在线观看视频免费| 久久久久久久久久免免费精品| 97久久精品亚洲中文字幕无码| 午夜神器成在线人成在线人免费| 一区二区免费国产在线观看 |