一:主要步骤
①:先确保将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"