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不同
