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