JDBC典型用法 執行SQL語句方式

2021-10-04 06:37:44 字數 1553 閱讀 3342

api:

drivermanager:用於管理jdbc驅動的服務類。程式中使用該類的主要功能是獲取connection物件

connection: 代表資料庫連線物件,每個connection代表乙個物理連線會話。要想訪問資料庫,必須先獲得資料庫連線

statement:用於執行sql語句的工具介面。該物件既可用於執行ddl、dcl語句,也可用於執行dml語句,還可用於執行sql查詢。當執行sql查詢時,返回查詢到的結果集

resultset:結果集物件。該物件包含訪問查詢結果的方法,resultset可以通過列索引或列名獲得列資料

程式設計步驟:

1.載入資料庫驅動。通常使用class類的forname()靜態方法來載入驅動。

2.通過drivermanager獲取資料庫連線。

3.通過connection物件建立statement物件。

4.使用statement執行sql語句。

5.操作結果集。

6.**資料庫資源,包括關閉resultset、statement 和connection等資源。

jdbc不僅可以執行查詢,還可以執行ddl、dml語句

可以用executeupdate()方法執行ddl、dml語句

使用executeupdate()執行dml語句與執行ddl語句基本相似,區別是executeupdate()執行ddl語句後返回0,而執行dml語句後返回受影響的記錄條數。

當不清楚sql語句型別時,就需要用到execute()執行sql語句,使用execute0方法執行sql語句的返回值只是boolean 值,它表明執行該sql語句是否返回了resultset物件。

如果經常需要反覆執行一條結構相似的sql語句,它們的結構基本相似,只是執行插入時插入的值不同,可以使用帶佔位符(?)引數的sql語句來代替它,但statement執行sql語句時不允許使用問號佔位符引數,而且這個問號佔位符引數必須獲得值後才可以執行。為了滿足這種功能,jdbc提供了preparedstatement 介面,它是statement介面的子介面,它可以預編譯sql語句,預編譯後的sql語句被儲存在preparedstatement 物件中,然後可以使用該物件多次高效地執行該語句。簡而言之,使用preparedstatement比使用staterment 的效率要高。

除此之外,使用preparedstatement還有乙個優勢——當 sql語句中要使用引數時,無須「拼接」sql字串。

使用preparedstatement 執行帶佔位符引數的sql語句時,sql語句中的佔位符引數只能代替普通值,不要使用佔位符引數代替表名、列名等資料庫物件,更不要用佔位符引數來代替sql語句中的insert、select等關鍵字。

sql語句將mysql的語句結束符改為雙斜線(//), 這樣就可以在建立儲存過程中使用分號作為分隔符(mysql預設使用分號作為語句結束符)。

呼叫儲存過程使用callablestatement, 可以通過connection 的preparecall()方 法來建立callablestatement物件,建立該物件時需要傳入呼叫儲存過程的sql語句。呼叫儲存過程的sql語句總是這種格式: ,其中的問號作為儲存過程引數的佔位符。

JDBC執行SQL語句

一.執行sql語句 使用preparedstatement,由preparedstatement建立,preparedstatement物件用於傳送帶有乙個或多個輸入引數的sql語句,執行語句時,輸入引數將被送到資料庫中。preparedstatement的例項擴充套件了statement,因此它們...

JDBC典型用法

jdbc常用介面簡介 drivermanager 用於管理jdbc驅動的服務類。程式中使用該類的主要功能是獲取connection物件。connection 代表資料庫連線物件,每個connection代表乙個物理連線會話。statement 用於執行sql語句的工具介面。該物件既可以用於執行ddl...

如何抓到jdbc連線的所執行的sql語句

我們通常在定位資料庫鎖問題時,通常希望找到哪個程序發出了哪個語句,鎖住了哪張表,一般我們通過查v lock,然後找到sid,再到v sesion裡找到這個程序的hash value或pre hash value,然後根據hash value定位到具體的語句。可是,我們發現,通過jdbc連線上來的程序...