1.JDBC是什麼?
JDBC(Java DataBase Connectivity)java數據庫連接
2.JDBC可以做什麼?
簡單地說,JDBC 可做三件事:與數據庫建立連接、發送 操作數據庫的語句並處理結果。
3.JDBC的優勢?
Java 具有堅固、安全、易於使用、易於理解和可從網絡上自動下載等特性,是編寫數據庫應用程序的傑出語言。所需要的只是 Java應用程序與各種不同數據庫之間進行對話的方法。
4.JDBC的實現?
JDBC定義接口
數據庫廠商實現接口
程序員調用接口,實際調用是底層數據廠商的實現部分。
實現一般有幾個步驟:
(1)Driver接口及驅動類加載
不同的類型的數據庫會有不同的驅動類。
如下表:下面是對各種數據庫的驅動類名和URL格式的匯總。如表3所示。其中hostip代表ip地址,dbname代表數據庫名。
數據庫
驅動類名
URL格式
Oracle
oracle.jdbc.driver.OracleDriver
jdbc:oracle:thin:@hostip:1521:dbname
Sybase
com.sybase.jdbc2.jdbc.SybDriver
jdbc:sybase:Tds:hostip:4100/dbname
Mysql
com.mysql.jdbc.Driver
jdbc:mysql://hostip:3306/dbname?useUnicode=true&characterEncoding=GBK
SQLServer 2000
com.microsoft.jdbc.sqlserver.SQLServerDriver
jdbc:microsoft:sqlserver://hostip:1433;DatabaseName=dbname
SQLServer 2005
com.microsoft.sqlserver.jdbc.SQLServerDriver
jdbc:sqlserver://hostip:1433;DatabaseName=dbname
SQLServer 7.0
net.sourceforge.jtds.jdbc.Driver
jdbc:jtds:sqlserver://hostip:1433/dbname
DB2
com.ibm.db2.jcc.DB2Driver
jdbc:db2://hostip:50000/dbname
Informix
com.informix.jdbc.IfxDriver
jdbc:informix-sqli://hostip:port/dbname:informixserver=<dbservername>
如,我們可以通過 Class.forName("oracle.jdbc.driver.OracleDriver")加載Oracle的驅動類;
(2)Connection接口
Connection接口的真正實現是由數據庫廠商提供的驅動包完成的。
String=URL;
Connection conn=DriverManager.getConnection("URL","DatabaseName","password")
不同的類型數據庫會有不同的URL。
(3)Statement接口
Statement:由方法createStatement所創建。Statement對象用於發送簡單的SQL語句。
PreparedStatement:由方法prepareStatement所創建。PreparedStatement對象用於發送帶有一個或多個輸入參數(IN參數)的SQL語句。PreparedStatement擁有一組方法,用於設置IN參數的值。執行語句時,這些IN參數將被送到數據庫中。PreparedStatement的實例擴展了Statement,因此它們都包括了Statement的方法。PreparedStatement對象有可能比Statement對象的效率更高,因為它已被預編譯過並存放在那以供將來使用。
Statement 接口提供了三種執行 SQL 語句的方法:executeQuery、executeUpdate 和 execute。
(4)ResultSet接口
用於處理sql語句執行後的結果。
(5)關閉對象
Statement對象將由Java垃圾收集程序自動關閉。而作為一種好的編程風格,應在不需要Statement對象時顯式地關閉它們。這將立即釋放DBMS資源,有助於避免潛在的內存問題。