java中最常用的數據庫連接技術就是JDBC。
目前幾乎所有的主流數據庫都提供了相應的jdbc驅動,可以簡單理解為.net中的數據庫客戶端dll,.net中如果對於netframework默認不支持的數據庫(比如sqllite,mysql之類),就必須要下載專門的數據庫客戶端dll文件,在vs.net中添加該dll的引用,然后就可以用它來連接數據庫。
jdbc也是同樣的道理,jdk默認安裝后,幾乎沒帶什么jdbc驅動,需要到各數據庫提供商網站下載對應的jdbc驅動,以mysql為例,下載mysql jdbc驅動后(百度搜索 “mysql jdbc”就行),會得到一個mysql-connector-java-5.1.22-bin.jar的文件,把它復制到 \jdk\jre\lib\ext 目錄下(這樣程序運行時,通過ClassPath就能找到該文件)
然后就可以寫代碼連接了,示例代碼 :
package jmyang.jdbctest; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.Statement; import java.sql.Connection; public class MySqlTest { public static void main(String[] args) { Connection conn = null; try { // 加載mysql驅動程序 Class.forName("com.mysql.jdbc.Driver"); // 連接localhost上的mysql,並指定使用test數據庫,用戶名為root,密碼為*** conn = DriverManager.getConnection("jdbc:mysql://localhost/test", "root", "***"); if (!conn.isClosed()) { System.out.println("數據庫連接成功!"); //驗證是否連接成功 } Statement statement = conn.createStatement(); //查詢數據 ResultSet rs = statement.executeQuery("select * from person"); //輸出結果集(類似.net中的DataSet/DataTable) while (rs.next()) { System.out.println("id=" + rs.getInt("Id") + ",name=" + rs.getString("Name")); } rs.close(); } catch (Exception e) { e.printStackTrace(); } finally { if (conn != null) { try { conn.close(); conn = null; } catch (Exception e) { e.printStackTrace(); } } } } }
下面是oracle 11g Express版連接的示例:
oracle 11g安裝后,在jdbc目錄下,會有 ojdbc5.jar,ojdbc6.jar,ojdbc6_g.jar 三個包,其中ojdbc5適用於jdk1.5及以上版本,另外二個適用於jdk1.6及以上版本。
注:經我實際測試,如果搞不清自己的jdk版本號,直接把ojdbc5.jar,ojdbc6.jar二個文件都復制到 \jdk\jre\lib\ext下 也可以。
Class.forName("oracle.jdbc.driver.OracleDriver"); // 連接localhost上的oracle,用戶名為yangjm,密碼為***,SID為XE,端口號1521,oracle服務器IP:localhost conn = DriverManager.getConnection("jdbc:oracle:thin:@//localhost:1521/XE", "yangjm", "***");
與mysql示例代碼的區別僅在於:加載的驅動不同 以及 getConnection時指定的url不同