(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY)講解

說明:Statement stmt = con.createStatemen=(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);數據庫

通用格式爲:Statement stmt=con.createStatement(int type,int concurrency);咱們在訪問數據庫的時候,在讀取返回結果的時候,可能要先後移動指針,好比咱們先計算有多少條信息,這是咱們就須要把指針移到最後來計算,而後再把指針移到最前面,逐條讀取,有時咱們只須要逐條讀取就能夠了。還有就是有隻咱們只須要讀取數據,爲了避免破壞數據,咱們可採用只讀模式,有時咱們須要望數據庫裏添加記錄,這是咱們就要採用可更新數據庫的模式。下面咱們就對其參數進行說明:

參數 int type指針

ResultSet.TYPE_FORWORD_ONLY 結果集的遊標只能向下滾動。get

ResultSet.TYPE_SCROLL_INSENSITIVE 結果集的遊標能夠上下移動,當數據庫變化時,當前結果集不變。同步

ResultSet.TYPE_SCROLL_SENSITIVE 返回可滾動的結果集,當數據庫變化時,當前結果集同步改變。

參數 int concurrencyio

ResultSet.CONCUR_READ_ONLY 不能用結果集更新數據庫中的表。ast

ResultSet.CONCUR_UPDATETABLE 能用結果集更新數據庫中的表。

查詢語句date

ResultSet re=stmt.executeUpdate(SQL語句);用來更新數據庫信息或插入數據concurrency

ResultSet re=stmt.executeQuery(SQL語句);用來查詢數據庫信息方法

當咱們使用ResultSet re=stmt.executeQuery(SQL語句)查詢後,咱們能夠使用下列方法得到信息:next

public boolean previous() 將遊標向上移動,該方法返回boolean型數據,當移到結果集第一行以前時,返回false。

public void beforeFirst 將遊標移動到結果集的初始位置,即在第一行以前。

public void afterLast() 將遊標移到結果集最後一行以後。

public void first() 將遊標移到結果集的第一行。

public void last() 將遊標移到結果集的最後一行。

public boolean isAfterLast() 判斷遊標是否在最後一行以後。

public boolean isBeforeFirst() 判斷遊標是否在第一行以前。

public boolean ifFirst() 判斷遊標是否指向結果集的第一行。

public boolean isLast() 判斷遊標是否指向結果集的最後一行。

public int getRow() 獲得當前遊標所指向行的行號,行號從1開始,若是結果集沒有行,返回0。

public boolean absolute(int row) 將遊標移到參數row指定的行號。若是row取負值,就是倒數的行數,absolute(-1)表示移到最後一行,absolute(-2)表示移到倒數第2行。當移動到第一行前面或最後一行的後面時,該方法返回false

  

不帶參數使用默認值: 
createStatement() 
=createStatement(ResultSet.TYPE_FORWARD_ONLY,ResultSet.CONCUR_READ_ONLY)

這樣取得的Statement其執行SQL後獲得的ResultSet,將只能使用next()方法逐筆取得查詢結果。您能夠在創建Statement物件時指定resultSetType,可指定的參數有 ResultSet.TYPE_FORWARD_ONLY、ResultSet.TYPE_SCROLL_INSENSITIVE與 ResultSet.TYPE_SCROLL_SENSITIVE,在不指定的情況下,預設是第一個,也就是隻能使用next()來逐筆取得資料,指定第二個或第三個,則能夠使用ResultSet的afterLast()、previous()、absolute()、relative()等方法。

相關文章
相關標籤/搜索