02、JDBC查詢

来源:https://www.cnblogs.com/CSAH/archive/2019/10/10/11638654.html
-Advertisement-
Play Games

① 向資料庫發送SQL查詢語句 首先使用Statement聲明一個SQL語句對象,然後讓已創建的連接對象con調用方法createStatement()創建SQL語句對象。 Statement sql = con.createStatement(); Connection con = null; S ...


① 向資料庫發送SQL查詢語句

   首先使用Statement聲明一個SQL語句對象,然後讓已創建的連接對象con調用方法createStatement()創建SQL語句對象。

Statement sql = con.createStatement();

Connection con = null;

String DBname = "jdb"; //資料庫名字

String url = "jdbc:mysql://localhost:3306/"+DBname+"?useSSL=true&characterEncoding=utf-8";

String username = "root";//資料庫賬號

String password = "root";//資料庫密碼

Statement sql = null;

try {

Class.forName("com.mysql.jdbc.Driver");

con = DriverManager.getConnection(url, username, password);//連接代碼

sql = con.createStatement();

} catch (Exception e) {

// TODO: handle exception

System.out.println(e);

}

② 處理查詢結果

   有了SQL語句對象後,可以調用相應的方法實現對資料庫中表的查詢和修改,並將結果放在一個ResultSet類聲明的對象中。換句話說,SQL查詢語句對資料庫的查詢操作將返回一個ResultSet對象,ResultSet對象由按"列"(欄位)組織的數據行構成。

ResultSet rs = sql.executeQuery("SELECT * FROM students");//查詢student表中的數據

Connection con = null;

String DBname = "jdb"; //資料庫名字

String url = "jdbc:mysql://localhost:3306/"+DBname+"?useSSL=true&characterEncoding=utf-8";

String username = "root";//資料庫賬號

String password = "root";//資料庫密碼

Statement sql = null;

ResultSet rs = null;

try {

Class.forName("com.mysql.jdbc.Driver");

con = DriverManager.getConnection(url, username, password);//連接代碼

sql = con.createStatement();

rs = sql.executeQuery("SELECT * FROM students");//查詢student表中的數據

} catch (Exception e) {

// TODO: handle exception

System.out.println(e);

}

   ResultSet對象的方法

NO.

方法名稱

類型

描述

01

public boolean next()throws SQLException

普通

將游標從當前位置向前移一行

02

public byte getByte(int columnIndex)throws SQLException

普通

以byte的形式獲取當前行中指定列的值

03

public Date getDate(int columnIndex)throws SQLException

普通

以java.sql.Date對象的形式獲取當前行中指定列的值

04

public double getDouble(int columnIndex)throws SQLException

普通

以double的形式獲取此 當前行中指定列的值

05

public float getFloat(int columnIndex)throws SQLException

普通

以float的形式獲取當前行中指定列的值

06

public int getInt(int columnIndex)throws SQLException

普通

以int的形式獲取當前行中指定列的值

07

public long getLong(int columnIndex)throws SQLException

普通

以long的形式獲取當前行中指定列的值

08

public String getString(int columnIndex)throws SQLException

普通

以String的形式獲取當前行中指定列的值

09

public byte getByte(String columnName)throws SQLException

普通

以byte的形式獲取當前行中指定列的值

10

public Date getDate(String columnName)throws SQLException

普通

以java.sql.Date對象的形式獲取當前行中指定列的值

11

public double getDouble(String columnName)throws SQLException

普通

以double的形式獲取此 當前行中指定列的值

12

public float getFloat(String columnName)throws SQLException

普通

以float的形式獲取當前行中指定列的值

13

public int getInt(String columnName)throws SQLException

普通

以int的形式獲取當前行中指定列的值

14

public long getLong(String columnName)throws SQLException

普通

以long的形式獲取當前行中指定列的值

15

public String getString(String columnName)throws SQLException

普通

以String的形式獲取當前行中指定列的值

說明:

   無論欄位是何種屬性;都可以使用getString方法返回欄位值的串表示

③ 關閉連接

   con.close();

註:使用ResultSet對象中的數據時,必須始終保持資料庫的連接,直到應用程式將ResultSet對象中的數據查看完畢。如果在rs之後立即關閉連接,那麼程式將無法獲取rs中的數據。

範例:控制statement對象游標

方法:public Statement createStatement(int resultSetType,int resultSetConcurrency) throws SQLException

//獲取Statement對象

Statement stmt = con.createStatement(int type,int concurrency);

//返回結果集

ResultSet rs = stmt.executeQuery(SQL語句);

resultSetType - 結果集類型,

resultSetType:ResultSet.TYPE_FORWARD_ONLY、ResultSet.TYPE_SCROLL_INSENSITIVE 或 ResultSet.TYPE_SCROLL_SENSITIVE

resultSetConcurrency:ResultSet.CONCUR_READ_ONLY 或 ResultSet.CONCUR_UPDATABLE

   ResulSet常用方法

NO.

方法名稱

類型

描述

01

public void beforeFirst()throws SQLException

普通

將游標移動到開頭,位於第一行之前

02

public void afterLast()throws SQLException

普通

將游標移動到末尾,位於最後一行之後

03

public boolean first()throws SQLException

普通

將游標移動到第一行

04

public boolean last()throws SQLException

普通

將游標移動到最後一行

05

public boolean isBeforeFirst()throws SQLException

普通

獲取游標是否位於第一行之前

06

public boolean isAfterLast()throws SQLException

普通

獲取游標是否位於最後一行之後

07

public boolean isFirst()throws SQLException

普通

獲取游標是否位於第一行

08

public boolean isLast()throws SQLException

普通

獲取游標是否位於最後一行。調用 isLast 方法可能開銷很大

09

public int getRow()throws SQLException

普通

獲取當前行編號

10

public boolean absolute(int row)throws SQLException

普通

將游標移動到此 ResultSet 對象的給定行編號

註:如果row取負值,就是倒數的行數,absolute(-1)表示移到最後一行,absolute(-2)表示倒數第二行。


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 現代工業化的推進在極大加速現代化進程的同時也帶來的相應的安全隱患,在傳統的可視化監控領域,一般都是基於 Web SCADA 的前端技術來實現 2D 可視化監控,本系統採用 Hightopo 的 HT for Web 產品來構造輕量化的 3D 可視化場景,該 3D 場景從正面展示了一個現代化工廠的現實... ...
  • 橋接模式與裝飾者模式區別: 橋接模式類圖 裝飾者模式類圖 1、定義: (1)橋接模式:將抽象部分與它的實現部分分離,使它們都可以獨立地變化 (2)裝飾者模式:動態地給一個對象增加一些額外的職責,就增加對象功能來說,裝飾模式比生成子類實現更為靈活 2、“獨立部分”不同: (1)橋接模式:抽象類和實現接 ...
  • 中介者模式(Mediator): 在現實生活中,有很多中介者模式的身影,例如QQ游戲平臺,聊天室、QQ群、簡訊平臺和房產中介。不論是QQ游戲還是QQ群,它們都是充當一個中間平臺,QQ用戶可以登錄這個中間平臺與其他QQ用戶進行交流,如果沒有這些中間平臺,我們如果想與朋友進行聊天的話,可能就需要當面才可 ...
  • 一、多線程調試斷點 的 斷點調試是有一個模式的選擇的,就像下麵這張圖,平時我們都使用的是預設的 (在 中預設是線程模式) ,這種模式我們只能將一個線程斷下來,但其他線程卻已經執行過了;而將其改為 後,就可以多個線程都斷下來,並且可以很方便的切換線程的執行流程,這就是多線程調試。 在 控制台能夠很方便 ...
  • 產品定位 騰訊bugly和fabric不僅僅是可以幫助運營人員分析用戶、優化推廣的數據分析平臺,也是移動開發者的異常上報平臺和應用更新平臺。可以同時為公司產品運營和開發人員提供服務。 產品功能 fabric在查看dashboard頁面之前必須在應用里集成SDK,所以這裡只對fabric官網上給出的功 ...
  • Java的日期類Date Date類 註意:是 java.util.Date ; 而非 java.sql.Date,此類是給資料庫訪問的時候使用的 示例 1 : 時間原點概念 所有的數據類型,無論是整數,布爾,浮點數還是字元串,最後都需要以數字的形式表現出來。 日期類型也不例外,換句話說,一個日期, ...
  • 這是 Java 網路爬蟲系列博文的第二篇,在上一篇 "Java 網路爬蟲,就是這麼的簡單" 中,我們簡單的學習了一下如何利用 Java 進行網路爬蟲。在這一篇中我們將簡單的聊一聊在網路爬蟲時,遇到需要登錄的網站,我們該怎麼辦? 在做爬蟲時,遇到需要登陸的問題也比較常見,比如寫腳本搶票之類的,但凡需要 ...
  • 一、楔子 你現在已經學會了寫python代碼,假如你寫了兩個python文件a.py和b.py,分別去運行,你就會發現,這兩個python的文件分別運行的很好。但是如果這兩個程式之間想要傳遞一個數據,你要怎麼做呢? 這個問題以你現在的知識就可以解決了,我們可以創建一個文件,把a.py想要傳遞的內容寫 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...