天天看點

JDBC資料庫程式設計常用接口(轉)

JDBC的全稱是Java DataBase Connectivity,是一套面向對象的應用程式接口(API),制定了統一的通路各種關系資料庫的标準接口,為各個資料庫廠商提供了标準接口的實作。這東西能夠實作軟體的擴平台性。

JDBC是一種底層API,在通路資料庫是需要在業務邏輯中直接嵌入SQL語句。

JDBC不能夠直接通路資料庫,必須依賴資料庫廠商提供的JDBC驅動程式完成以下三步工作1.同資料庫建立連接配接;2.向資料庫發送SQL語句;3.處理從資料庫傳回的結果。

*JDBC驅動

1.JDBC-ODBC橋連是指通過本地的OBDC Driver連接配接到RDBMS上。

2.JDBC-Native橋連通過調用本地的native程式實作資料庫連接配接,這種類型的驅動程式把客戶機API上的JDBC調用轉為Oracle,Sybase,Informix,DB2或者其它DBMS的調用。

3.JDBC網絡驅動是一種完全利用Java語言編寫的JDBC驅動。

4.本地協定驅動是一種完全利用Java語言編寫的JDBC驅動,這種類型的驅動程式将JDBC調用直接轉換為DBMS所使用的網絡協定。

#JDBC中常用接口

-Driver接口

每種資料庫的驅動程式都應該提供一個實作java.sql.Driver接口的類,簡稱Driver類。

加載JDBC-ODBC驅動:

Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");

-DriverManager類

java.sql.DriverManager類負責管理JDBC驅動程式的基本服務,是JDBC的管理層,作用于使用者和驅動程式之間,負責跟蹤可用的驅動程式,并在資料和驅動程式之間建立連接配接。

(靜态方法)getConnection(String url,String user,String password)用來建立資料庫連接配接。

setLoginTimeout(int seconds)用來設定每次連接配接資料庫的最長時間

println(String message)用來輸出指定消息到目前的JDBC日記流

-Connection接口

java.sql.Connection接口代表與特定資料庫的連接配接,在接連的上下文中可以執行SQL語句并傳回結果,還可以通過getMetaData()方法獲得由資料庫提供的相關資訊。

createStatement()建立并傳回一個Statement 執行個體,通常在執行無參數的SQL語句是建立執行個體。

-Statement接口

java.sql.Statement接口用來執行靜态SQL語句,并傳回執行結果。

對于INSERT,IPDATE和DELETE語句,調用executeUpdate(String sql)方法;對于SELECT語句,則調用executeQuery(String sql)方法,并傳回一個永遠不能為null的ResultSet執行個體。

-PreparedStatement接口

java.sql.PreparedStatement接口繼承并擴充了Statement接口,用來執行動态的SQL語句,即包含參數的SQL語句。

通過setXxx()方法為SQL語句中的參數指派時,建議利用與參數類型比對的方法,也可以利用setObject()為各種類型指派。

PreparedStetement ps=connection.preparedStatement("select * from table_name where id>? and (name=? or name=?)");

ps.setInt(1,6);

ps.setString(2,"馬先生");

ps.setObject(3,"李先生");

ResultSet rs=ps.executeQuery();

clearParameters()清除目前參數的值。

-CallableStatement接口

java.sql.CallableStatement接口繼承并擴充PreparedStatement接口,用來執行SQL的存儲過程。

-ResultSet接口

java.sql.ResultSet接口類似于一個資料表,通過該接口的執行個體可以獲得檢索結果集,以及對應資料表的相關資訊,ResultSet執行個體通過執行查詢資料庫的語句生成。

next()方法可以将指針移動到下一行,傳回bool類型。隻能疊代一次!

getXxx()方法均有兩個重載方法,分别根據列的索引号和列的名稱檢索列值。

first(),傳回bool值

last(),傳回bool值

previous()将指針移動到上一行,傳回bool值

beforeFirst()

afterLast()

absolute()移動到指定行,int>0向下移動,int<0,向後移動

relative()相對目前位置移動到指定行,int>0向下移動,int<0,向後移動

getRow()目前行索引編号

findColumn()檢視指定列名的索引編号

isBeforeFirst()檢視指針是否處于執行個體開頭,傳回bool

isFirst()檢視指針是否處于第一行,傳回bool

deleteRow()删除目前行,執行該方法後,在執行close()之後才會同步到資料庫

http://www.cnblogs.com/rond/articles/1907133.html