一:主要步驟
①:先確保將tnsnames.ora文件上傳到了程序服務器上。
tnsnames.ora文件內容如下:
自定義名稱=
(DESCRIPTION=
(ADDRESS_LIST=
(FAILOVER=on)
(LOAD_BALANCE=off)
(ADDRESS=(PROTOCOL=tcp)(HOST=你的主數據庫服務器IP)(PORT=1521))
(ADDRESS=(PROTOCOL=tcp)(HOST=你的從數據庫服務器IP)(PORT=1521)))
(CONNECT_DATA=(SERVICE_NAME=服務名)))
②:關鍵代碼:
System.setProperty("oracle.net.tns_admin", "TNSNAMES.ORA所在路徑");
String url = "jdbc:oracle:thin:@服務名";
二:詳細示例
import java.sql.*;
import java.util.Properties;
/**
* Created by 10412 on 2016/12/27.
* JDBC的六大步驟
*/
public class ConnectOracle
{
public static void main(String[] args) {
Connection connect = null;
Statement statement = null;
ResultSet resultSet = null;
try {
//第一步:註冊驅動
//第一種方式:類加載(常用)
Class.forName("oracle.jdbc.OracleDriver");
//第二步:獲取連接
//第一種方式:利用DriverManager(常用)
//connect = DriverManager.getConnection("jdbc:oracle:thin:@10.244.7.1:1521:dx", "scott", "tiger");
System.setProperty("oracle.net.tns_admin", "E:\\JAVA_PRACTISE");
connect = DriverManager.getConnection("jdbc:oracle:thin:@dxsrv", "scott", "tiger");
//第三步:獲取執行sql語句對象
PreparedStatement preState = connect.prepareStatement("select * from t where id = 1");
//第四步:執行sql語句
resultSet = preState.executeQuery(); //執行查詢語句
//第五步:處理結果集
while (resultSet.next())
{
int id = resultSet.getInt("id");
String name = resultSet.getString("name");
System.out.println(id+" "+name); //打印輸出結果集
}
} catch (Exception e) {
e.printStackTrace();
}finally {
//第六步:關閉資源
try {
if (resultSet!=null) resultSet.close();
if (statement!=null) statement.close();
if (connect!=null) connect.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
--備註:
假如是已經上線了的程序,可以不用修改代碼也能實現該功能:System.setProperty("oracle.net.tns_admin", "TNSNAMES.ORA所在路徑");
java程序啓動的時候 加一個-D的參數, 就和System.setProperty作用一樣
如:
-Doracle.net.tns_admin="E:\\JAVA_PRACTISE"