99re热视频这里只精品,久久久天堂国产精品女人,国产av一区二区三区,久久久精品成人免费看片,99久久精品免费看国产一区二区三区

JDBC ResultSet

2018-03-20 20:05 更新

JDBC教程 - JDBC ResultSet


JDBCjava.sql.ResultSet 用于處理從SQL select語句返回的結(jié)果。

SQL select語句從數(shù)據(jù)庫讀取數(shù)據(jù),并返回結(jié)果集中的數(shù)據(jù)。

select語句的結(jié)果以表格形式顯示。它有列和行。

ResultSet對象維護一個指向結(jié)果集中當前行的游標。

對于某一行,我們可以使用 java.sql.ResultSet 中的方法來獲取數(shù)據(jù)逐列。

ResultSet中的方法

ResultSet接口的方法有三個類別:

  • Navigational方法來回移動光標。
  • Getter方法從當前行獲取數(shù)據(jù)。
  • Update方法更新當前行的數(shù)據(jù)。

ResultSet類型

光標基于ResultSet的特性是可移動的。這些屬性在創(chuàng)建JDBC語句時設(shè)置。

下面列出了Resultset類型,默認值為TYPE_FORWARD_ONLY。

類型描述
ResultSet.TYPE_FORWARD_ONLY光標只能向前移動。
ResultSet.TYPE_SCROLL_INSENSITIVE光標可以向前和向后滾動。 ResultSet對在創(chuàng)建ResultSet后對數(shù)據(jù)庫所做的更改不敏感。
ResultSet.TYPE_SCROLL_SENSITIVE光標可以向前和向后滾動。并且ResultSet對在創(chuàng)建結(jié)果集后對數(shù)據(jù)庫所做的更改很敏感。

ResultSet的并發(fā)性

ResultSet并發(fā)類型如下所示。默認并發(fā)類型為CONCUR_READ_ONLY。

并發(fā) 描述
ResultSet.CONCUR_READ_ONLY 只讀結(jié)果集。 這是默認值
ResultSet.CONCUR_UPDATABLE 可更新結(jié)果集。

例子

JDBC從Connection對象提供了以下方法來使用某些類型的ResultSet創(chuàng)建語句。

  • createStatement(int resultSetType,int resultSetConcurrency);

  • prepareStatement(String SQL,int resultSetType,int resultSetConcurrency);

  • prepareCall(String sql,int resultSetType,int resultSetConcurrency);

以下代碼創(chuàng)建一個Statement對象以創(chuàng)建只向前的只讀ResultSet對象

Statement stmt = conn.createStatement(
                        ResultSet.TYPE_FORWARD_ONLY,
                        ResultSet.CONCUR_READ_ONLY);

ResultSet導(dǎo)航

我們可以使用ResultSet接口中的以下方法來移動光標。

方法描述
beforeFirst()將光標移動到第一行之前
afterLast()將光標移動到最后一行之后
first()將光標移動到第一行
last()將光標移動到最后一行
絕對(int row)將光標移動到指定的行
relative(int row)相對于光標所在位置向前或向后移動光標行數(shù)。
previous()將光標移到上一行。
next()將光標移動到下一行。
int getRow()返回游標指向的行號。
moveToInsertRow()將光標移動到我們可以將新行插入數(shù)據(jù)庫的位置。當前行號不更改。
moveToCurrentRow()如果光標當前位于插入行,則將光標移回當前行;否則,此方法不執(zhí)行任何操作。

ResultSet列數(shù)據(jù)

我們有兩種方法在ResultSet中獲取數(shù)據(jù)。

  • 按列索引
  • 按列名稱

例如,以下兩個方法從列中獲取int值。第一個是按列名稱,第二個是按列索引。

public int getInt(String columnName)
public int getInt(int columnIndex) 

列索引從1開始。

更新ResultSet

我們可以更新ResultSet對象中的當前行。

我們需要在更新期間指明列名或索引。

例如,要更新當前行的String列,我們可以使用以下方法。

public void updateString(int columnIndex, String s) throws SQLException
public void updateString(String columnName, String s) throws SQLException

要將更新更改推送到數(shù)據(jù)庫,請調(diào)用以下方法之一。

描述描述
updateRow()更新數(shù)據(jù)庫中的相應(yīng)行。
deleteRow()從數(shù)據(jù)庫中刪除當前行。
refreshRow()刷新結(jié)果集以反映數(shù)據(jù)庫中的任何更改。
cancelRowUpdates()取消對當前行所做的任何更新。
insertRow()當光標指向插入行時,在數(shù)據(jù)庫中插入一行。
以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號