JDBC連線的幾個步驟

2022-08-22 07:09:11 字數 3273 閱讀 1874

每次都會執行sql語句,相關資料庫都要執行sql語句的編譯。

statement為一條sql語句生成執行計畫,

如果要執行兩條sql語句

select colume from table where colume=1;

select colume from table where colume=2;

會生成兩個執行計畫

一千個查詢就生成一千個執行計畫!

connection con = drivermanager.getconnection(url, user, pass);            

string sql = "";            

statement stat = con.createstatement(sql);      

resultset rs = stmt.executequery("select a, b, c from table2");          

statement 介面提供了三種執行 sql 語句的方法:executequery、executeupdate 和execute。使用哪乙個方法由 sql 語句所產生的內容決定。

stat.exceutequery():

返回值是乙個結果集result。該結果集永遠不能為null。                   

用於產生單個結果集的語句,例如 select 語句                  

statement stat = con.createstatement(sql);    

resultset rs = stat.executequery();

stat.executeupdate():

返回值是int型資料。該值代表執行insert,update,delete語句後的更新行數。若為0,則表示沒有執行成功!                 

用於執行 insert、update 或 delete 語句以及 sqlddl(資料定義語言)語句,例如 create table 和 drop table。

stat.executeupdate(sql);

stat.execute():

用於執行返回多個結果集、多個更新計數或二者組合的語句。
用於處理動態sql語句,在執行前會有乙個預編譯過程,這個過程是有時間開銷的,雖然相對資料庫的操作,該時間開銷可以忽略不計,  

但是preparedstatement的預編譯結果會被快取,下次執行相同的預編譯語句時,就不需要編譯,只要將引數直接傳入編譯過的語句執行**  

中就會得到執行,所以,對於批量處理可以大大提高效率。

(1) preparedstatement介面繼承statement,preparedstatement 例項包含已編譯的 sql 語句,所以其執行速度要快於 statement 物件。(2)作為 statement 的子類,preparedstatement 繼承了 statement 的所有功能。三種方法executeexecutequeryexecuteupdate已被更改以使之不再需要引數

connection con = drivermanager.getconnection(url, user, pass);            

string sql = "";            

preparestatement pstmt = con.preparestatement(sql);      

resultset rs = pstmt.executequery("select a, b, c from table2");

preparedstatement介面繼承statement。所以也為executequery、executeupdate 和execute三種。
pstmt.exceutequery():

返回值是乙個結果集result。該結果集永遠不能為null。                

用於產生單個結果集的語句,例如 select 語句                  

statement stat = con.createstatement(sql);    

resultset rs = stat.executequery();

pstmt.executeupdate():

返回值是int型資料,該值代表執行insert,update,delete語句後的更新行數。若為0,則表示沒有執行成功!           

用於執行 insert、update 或 delete 語句以及 sqlddl(資料定義語言)語句,例如 create table 和 drop table。

stat.executeupdate(sql);

pstmt.execute():

用於執行返回多個結果集、多個更新計數或二者組合的語句。

該語句可以是任何種類的 sql 語句

execute 方法返回乙個 boolean 值,以指示第乙個結果的形式。必須呼叫 getresultset 或 getupdatecount 方法來檢索結果,並且必須呼叫 getmoreresults 移動到任何後面的結果。

返回:

如果第乙個結果是 resultset 物件,則返回 true;如果第乙個結果是更新計數或者沒有結果,則返回 false

意思就是如果是查詢的話返回true,如果是更新或插入的話就返回false了;

stmt.executeupdate("insert into tb_name (col1,col2,col2,col4) values ('"+var1+"','"+var2+"',"+var3+",'"+var4+"')");//stmt是statement物件例項

​perstmt = con.preparestatement("insert into tb_name (col1,col2,col2,col4) values (?,?,?,?)");

pstmt.setstring(1,var1);

pstmt.setstring(2,var2);

pstmt.setstring(3,var3);

pstmt.setstring(4,var4);

pstmt.executeupdate(); //prestmt是 preparedstatement 物件例項

可防止暴力傳密碼。

JDBC的連線步驟

1 載入 註冊 資料庫驅動 到jvm 2 建立 獲取 資料庫連線。3 建立 獲取 資料庫操作物件。4 定義操作的sql語句。5 執行資料庫操作。6 獲取並操作結果集。7 關閉物件,資料庫資源 關閉結果集 關閉資料庫操作物件 關閉連線 public class jdbctest catch excep...

JDBC資料庫連線步驟

1 載入資料庫驅動 class.forname com.mysql.jdbc.driver 2 建立資料庫連線池 conn drivermanager.getconnection jdbc mysql localhost 3306 test2?user root password 1234 3 由當...

jdbc資料庫連線步驟

筆記 連線資料庫的幾大步驟 1.載入驅動 class.forname 資料庫驅動的名稱 2.建立連線 connection conn driver.getconnection 路徑 使用者名稱 密碼 埠號 3.建立預編譯物件 statement stat conn.createstatement 4...