JDBC純驅動方式連接Oracle
1 下載Oracle提供的驅動程序包
下載地址:
http://www.oracle.com/technetwork/database/enterprise-edition/jdbc-112010-090769.html
下載哪個版本,跟你使用的JDK版本有關,比如使用JDK1.5,則下載ojdbc5.jar。若使用JDK1.6,則下載ojdbc6.jar。因為沒有ojdbc7.jar或ojdbc8.jar,所以若使用JDK1.7或JDK1.8,也是下載ojdbc6.jar。
如果已經安裝了Oracle服務器端或客戶端,則無需再下載驅動程序包。Oracle服務器的JDBC驅動程序包目錄位於$ORACLE_HOME\jdbc\lib下。
比如,筆者在D:\oracle目錄下安裝了Oracle 11g服務器端,則驅動程序包位於
D:\oracle\product\11.2.0\dbhome_1\jdbc\lib
2 將驅動程序包引入工程
筆者的集成開發環境用的是IntelliJIDEA 14.0.1,JDK的版本為1.7。則驅動程序包應該使用ojdbc6.jar。
(1)建立工程,工程名隨意,比如MyJDBC。
(2)點擊左上角菜單欄中的”File”à“ProjectStructure…”
(3)在彈出的界面中選擇“Modules”à“Dependencies”à右側的“+”按紐,在彈出的右側的小窗口中選擇第二個選項“Library…”
(4)在彈出的“Choose Libraries”窗口中,選擇底部的“New Library”à”Java”,彈出”Select Library Files”窗口,
(5)找到D:\oracle\product\11.2.0\dbhome_1\jdbc目錄,選擇ojdbc6.jar
(6)選擇好驅動程序包的界面如下圖所示,點擊底部的“Add Selected”按紐
(7)下圖顯示驅動程序包已經被添加到MyJDBC工程中,點擊底部的“OK”按紐
(8)返回工程主界面,可以看到左下角除了JDK1.7外,ojdbc6.jar也被添加進來了
3 編寫程序
建立一個Java類,名字隨意,比如JdbcTest。其代碼如下:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.PreparedStatement;
import java.util.Date;
public class JdbcTest{
publicstatic void main(String[] args) {
String driver = "oracle.jdbc.OracleDriver"; //驅動標識符
String url = "jdbc:oracle:thin:@localhost:1521:orcl"; //鏈接字符串
// url ="jdbc:oracle:thin:@10.0.30.64:1521:orcl"; // 連接遠程的數據庫可以這么寫
String user = "scott"; //數據庫的用戶名
String password = "tiger"; //數據庫的密碼
Connection con = null;
PreparedStatement pstm = null;
ResultSet rs = null;
boolean flag = false;
try {
Class.forName(driver);
con = DriverManager.getConnection(url,user, password);
String sql = "select * from emp";
pstm =con.prepareStatement(sql);
rs = pstm.executeQuery();
while(rs.next()) {
int empno = rs.getInt("empno");
String ename =rs.getString("ename");
double sal = rs.getDouble("sal");
Date hiredate =rs.getDate("hiredate");
int deptno = rs.getInt(("deptno"));
System.out.println(empno +"\t"+ ename +"\t"+ sal +"\t"+ hiredate +"\t"+ deptno);
}
flag = true;
} catch(ClassNotFoundException e) {
e.printStackTrace();
}
catch(SQLException e) {
e.printStackTrace();
}
finally {
if(rs != null) {
try {
rs.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
// 關閉執行通道
if(pstm !=null) {
try {
pstm.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
// 關閉連接通道
try {
if(con != null &&(!con.isClosed())) {
try {
con.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
} catch (SQLException e) {
e.printStackTrace();
}
}
if(flag) {
System.out.println("執行成功!");
} else {
System.out.println("執行失敗!");
}
}
}
4 運行結果
5 驗證
登錄數據庫,查詢scott.emp中的數據,可以看到相關的信息與上面的運行結果是一致的。