天天看點

【程式設計】java jdbc/ojdbc 連結oracle的三種方式

前言

  本文是一篇學習筆記,學習如何通過java jdbc /ojdbc 連接配接oracle的幾種方式。

一 使用方法

方法一:使用service_name 連接配接oracle  

jdbc:oracle:thin:@//:/ 

例如: jdbc:oracle:thin:@//10.10.10.1:1521/TDB

注意這裡的格式,@後面有//, 這是與使用SID的主要差別。

對于叢集來說,每個節點的SID 是不一樣的,但是SERVICE_NAME 确可以包含所有節點。

方法二: 使用SID 連接配接oracle 

jdbc:oracle:thin:@:: 

Example: jdbc:oracle:thin:@10.10.10.1:1521:testdb1 

注意 該方法已經不做推薦,oracle 官方推薦使用service_name 

方法三:使用tnsname 連接配接oracle

jdbc:oracle:thin:@ 

Example: jdbc:oracle:thin:@TESTDB 

二 源代碼

import java.sql.Connection;

import java.sql.DriverManager;

import java.sql.ResultSet;

import java.sql.SQLException;

import java.sql.Statement;

public class testDB {

 public static final String DBDRIVER = "oracle.jdbc.driver.OracleDriver";

# public static final String DBURL = "jdbc:oracle:thin:@127.0.0.1:1521/testdb1"; //sid 格式 testdb1是sid

# public static final String DBURL = "jdbc:oracle:thin:@//127.0.0.1:1521/TDB";   //servicename TDB是service_name

 public static final String DBUSER = "test\";

 public static final String DBPASSWORD = \"xxx\";

 public static final String DBURL = \"jdbc:oracle:thin:@TESTDB\"; //tnsname 格式

 public static void main(String[] args) throws Exception

 {

   Connection con = null;

   PreparedStatement ps = null;

   ResultSet rs = null;

  String strSQL = \"select count(*) from tsa_dim_deal\";

# System.setProperty(\"oracle.net.tns_admin\", \"/home/admin/oracle\");//使用tnsname 方法的時候 需要制定tnsname.ora所在的檔案夾絕對路徑

  Class.forName(DBDRIVER).newInstance();

  con = DriverManager.getConnection(DBURL,DBUSER,DBPASSWORD);

  ps = con.prepareStatement(strSQL);

  rs = ps.executeQuery();

  while(rs.next())

  {

   System.out.println(\"num:\"+rs.getString(1));

  }

  rs.close();

  ps.close();

  con.close();

 }

}

附錄:

[qilong.yangql@rac1 oracle]$ more tnsnames.ora

testdb=

  (DESCRIPTION =

    (FAILOVER = ON)

    (ADDRESS_LIST =

      (ADDRESS = (PROTOCOL = TCP)(HOST = 10.10.10.1)(PORT = 1521))

      (ADDRESS = (PROTOCOL = TCP)(HOST = 10.10.10.2)(PORT = 1521))

      (ADDRESS = (PROTOCOL = TCP)(HOST = 10.10.10.3)(PORT = 1521))

      (ADDRESS = (PROTOCOL = TCP)(HOST = 10.10.10.4)(PORT = 1521))

      (ADDRESS = (PROTOCOL = TCP)(HOST = 10.10.10.5)(PORT = 1521))

      (ADDRESS = (PROTOCOL = TCP)(HOST = 10.10.10.6)(PORT = 1521))

    )

    (CONNECT_DATA =

      (SERVER = DEDICATED)

      (SERVICE_NAME = tdb)

  )

注意 本文裡面 service_name tdb 和tnsname (testdb) 故意設定的不一樣.

三  參考:

http://razorsql.com/docs/help_oracle.html