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
  • Dapr Outbox 是1.12中的功能。 本文只介紹Dapr Outbox 執行流程,Dapr Outbox基本用法請閱讀官方文檔 。本文中appID=order-processor,topic=orders 本文前提知識:熟悉Dapr狀態管理、Dapr發佈訂閱和Outbox 模式。 Outbo ...
  • 引言 在前幾章我們深度講解了單元測試和集成測試的基礎知識,這一章我們來講解一下代碼覆蓋率,代碼覆蓋率是單元測試運行的度量值,覆蓋率通常以百分比表示,用於衡量代碼被測試覆蓋的程度,幫助開發人員評估測試用例的質量和代碼的健壯性。常見的覆蓋率包括語句覆蓋率(Line Coverage)、分支覆蓋率(Bra ...
  • 前言 本文介紹瞭如何使用S7.NET庫實現對西門子PLC DB塊數據的讀寫,記錄了使用電腦模擬,模擬PLC,自至完成測試的詳細流程,並重點介紹了在這個過程中的易錯點,供參考。 用到的軟體: 1.Windows環境下鏈路層網路訪問的行業標準工具(WinPcap_4_1_3.exe)下載鏈接:http ...
  • 從依賴倒置原則(Dependency Inversion Principle, DIP)到控制反轉(Inversion of Control, IoC)再到依賴註入(Dependency Injection, DI)的演進過程,我們可以理解為一種逐步抽象和解耦的設計思想。這種思想在C#等面向對象的編 ...
  • 關於Python中的私有屬性和私有方法 Python對於類的成員沒有嚴格的訪問控制限制,這與其他面相對對象語言有區別。關於私有屬性和私有方法,有如下要點: 1、通常我們約定,兩個下劃線開頭的屬性是私有的(private)。其他為公共的(public); 2、類內部可以訪問私有屬性(方法); 3、類外 ...
  • C++ 訪問說明符 訪問說明符是 C++ 中控制類成員(屬性和方法)可訪問性的關鍵字。它們用於封裝類數據並保護其免受意外修改或濫用。 三種訪問說明符: public:允許從類外部的任何地方訪問成員。 private:僅允許在類內部訪問成員。 protected:允許在類內部及其派生類中訪問成員。 示 ...
  • 寫這個隨筆說一下C++的static_cast和dynamic_cast用在子類與父類的指針轉換時的一些事宜。首先,【static_cast,dynamic_cast】【父類指針,子類指針】,兩兩一組,共有4種組合:用 static_cast 父類轉子類、用 static_cast 子類轉父類、使用 ...
  • /******************************************************************************************************** * * * 設計雙向鏈表的介面 * * * * Copyright (c) 2023-2 ...
  • 相信接觸過spring做開發的小伙伴們一定使用過@ComponentScan註解 @ComponentScan("com.wangm.lifecycle") public class AppConfig { } @ComponentScan指定basePackage,將包下的類按照一定規則註冊成Be ...
  • 操作系統 :CentOS 7.6_x64 opensips版本: 2.4.9 python版本:2.7.5 python作為腳本語言,使用起來很方便,查了下opensips的文檔,支持使用python腳本寫邏輯代碼。今天整理下CentOS7環境下opensips2.4.9的python模塊筆記及使用 ...