99re热这里只有精品视频,7777色鬼xxxx欧美色妇,国产成人精品一区二三区在线观看,内射爽无广熟女亚洲,精品人妻av一区二区三区

JDBC ResultSet

2018-03-20 20:05 更新

JDBC教程 - JDBC ResultSet


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

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

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

ResultSet對(duì)象維護(hù)一個(gè)指向結(jié)果集中當(dāng)前行的游標(biāo)。

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

ResultSet中的方法

ResultSet接口的方法有三個(gè)類別:

  • Navigational方法來(lái)回移動(dòng)光標(biāo)。
  • Getter方法從當(dāng)前行獲取數(shù)據(jù)。
  • Update方法更新當(dāng)前行的數(shù)據(jù)。

ResultSet類型

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

下面列出了Resultset類型,默認(rèn)值為TYPE_FORWARD_ONLY。

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

ResultSet的并發(fā)性

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

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

例子

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

  • createStatement(int resultSetType,int resultSetConcurrency);

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

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

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

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

ResultSet導(dǎo)航

我們可以使用ResultSet接口中的以下方法來(lái)移動(dòng)光標(biāo)。

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

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

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

  • 按列索引
  • 按列名稱

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

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

列索引從1開(kāi)始。

更新ResultSet

我們可以更新ResultSet對(duì)象中的當(dāng)前行。

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

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

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

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

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

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)