JDBC 學習筆記 三

2021-08-30 07:54:20 字數 2399 閱讀 6296

jdbc 學習筆記(三)

三、幾個重要介面:

(1) statement —— sql語句執行介面

statement介面代表了乙個資料庫的狀態,在向資料庫傳送相應的sql語句時,都需要建立statement介面或者preparedstatement介面。在具體應用中,statement主要用於操作不帶引數(可以直接執行)的sql語句,比如刪除語句、新增或更新。

(2) preparedstatement:預編譯的statement

第一步:通過連線獲得preparedstatement物件,用帶佔位符(?)的sql語句構造。

preparedstatement pstm = con.preparedstatement(「select * from test where id=?」);

第二步:設定引數

pstm.setstring(1,「ganbin」);

第三步:執行sql語句

rs = pstm.excutequery();

statement傳送完整的sql語句到資料庫不是直接執行而是由資料庫先編譯,再執行。而preparedstatement是先傳送帶引數的sql語句,再傳送一組引數值。如果是同構的sql語句,preparedstatement的效率要比statement高。而對於異構的sql則兩者效率差不多。

同構:兩個sql語句可編譯部分是相同的,只有引數值不同。

異構:整個sql語句的格式是不同的

注意點:1、使用預編譯的statement編譯多條sql語句一次執行

2、可以跨資料庫使用,編寫通用程式

3、能用預編譯時盡量用預編譯

(3) resultset —— 結果集操作介面

resultset介面是查詢結果集介面,它對返回的結果集進行處理。resultset是程式設計師進行jdbc操作的必需介面。

(4) resultsetmetadata —— 元資料操作介面

resultsetmetadata是對元資料進行操作的介面,可以實現很多高階功能。hibernate執行資料庫的操作,大部分都是通過此介面。可以認為,此介面是sql查詢語言的一種反射機制。resultsetmetadata介面可以通過陣列的形式,遍歷資料庫的各個欄位的屬性,對於我們開發者來說,此機制的意義重大。

jdbc通過元資料(metadata)來獲得具體的表的相關資訊,例如,可以查詢資料庫中有哪些表,表有哪些字段,以及欄位的屬性等。metadata中通過一系列get***將這些資訊返回給我們。

資料庫元資料 database metadata 使用connection.getmetadata()獲得

metadata包括: 包含了關於資料庫整體元資料資訊。

結果集元資料 result set metadata 使用resultset.getmetadata()獲得

比較重要的是獲得表的列名、列數等資訊。

結果集元資料物件:resultsetmetadata meta = rs.getmetadata();

ü 字段個數:meta.getcolomncount();

ü 欄位名字:meta.getcolumnname();

ü 欄位jdbc型別:meta.getcolumntype();

ü 字段資料庫型別:meta.getcolumntypename();

資料庫元資料物件:databasemetadata dbmd = con.getmetadata();

資料庫名=dbmd.getdatabaseproductname();

資料庫版本號=dbmd.getdatabaseproductversion();

資料庫驅動名=dbmd.getdrivername();

資料庫驅動版本號=dbmd.getdriverversion();

資料庫url=dbmd.geturl();

該連線的登陸名=dbmd.getusername();

四、jdbc異常處理:

jdbc中,和異常相關的兩個類是sqlexception和sqlwarning。

1. sqlexception類:用來處理較為嚴重的異常情況。

比如:① 傳輸的sql語句語法的錯誤;

② jdbc程式連線斷開;

③ sql語句中使用了錯誤的函式。

sqlexception提供以下方法:

geterrorcode() —— 用來返回代表異常的整數** (error code);

getmessage() —— 用來返回異常的描述資訊 (error message)。

2. sqlwarning類:用來處理不太嚴重的異常情況,也就是一些警告性的異常。其提供的方法和使用與sqlexception基本相似。

結合異常的兩種處理方式,明確何時採用哪種。

a. throws 處理不了,或者要讓呼叫者知道,就throws;

b. try … catch 能自行處理,就進行異常處理。

jdbc學習筆記 三

一.事務 transaction 原子操作 不可再分的操作,乙個操作不能再分成比它更細小的操作.事務是針對原子操作的,要求原子操作不可再分,並且必須同時成功同時失敗。事務就是把一些非原子操作,變成原子操作,由應用伺服器來提出要求,由資料庫伺服器來執行操作.在jdbc中預設是自動提交的,如果要想使用事...

jdbc學習筆記 三

一.事務 transaction 原子操作 不可再分的操作,乙個操作不能再分成比它更細小的操作.事務是針對原子操作的,要求原子操作不可再分,並且必須同時成功同時失敗。事務就是把一些非原子操作,變成原子操作,由應用伺服器來提出要求,由資料庫伺服器來執行操作.在jdbc中預設是自動提交的,如果要想使用事...

JDBC學習筆記

size medium color red 本節jdbc的操作學習大致分為 color size size medium color red list 資料庫的裝載和連線 資料庫的增刪改查 資料庫的預編譯 資料庫的事務管理 list color size 下面直接上 了,還是 比較實在 以mysql...