2011-11-04 38 views
9

Tôi đang viết một trình truy cập cơ sở dữ liệu bằng Java. Cơ sở dữ liệu nằm trong Oracle 11g, trong đó tôi hoàn toàn không quen thuộc, và tôi có JDK 1.6.jdbc jar sử dụng cái gì với oracle 11g & jdk 1.6 và cách kết nối với db chính nó

  1. Ojdbc4.jar có làm gì cho chương trình của tôi không? Chúng tôi không được phép kết nối Internet trong văn phòng và tôi không thể tải xuống ojdbc6.jar, mà tôi đã đọc tương thích hơn với thiết lập của mình.
  2. Tôi nên đặt những chuỗi nào trong Class.forName (Trình điều khiển chuỗi) và DriverManager.getConnection (String connectionURL)? Tôi không biết chuỗi trình điều khiển và URL kết nối vì chúng (tự nhiên) trông rất khác so với chuỗi trình điều khiển cho MS SQL Server.

Trả lời

18
  1. Oracle bó Jar với khách hàng hoặc máy chủ cài đặt Oracle và có thể được tìm thấy trong $ORACLE_HOME/jdbc/lib/ojdbc6.jar. Tôi luôn sử dụng cái đó.

  2. Tên lớp trình điều khiển là oracle.jdbc.OracleDriver và URL là jdbc:oracle:thin:@//[HOST][:PORT]/SERVICE.

Dưới đây là một ví dụ (lấy từ here):

import java.sql.*; 
class Conn { 
    public static void main (String[] args) throws Exception 
    { 
    Class.forName ("oracle.jdbc.OracleDriver"); 

    Connection conn = DriverManager.getConnection 
    ("jdbc:oracle:thin:@//localhost:1521/orcl", "scott", "tiger"); 
         // @//machineName:port/SID, userid, password 
    try { 
    Statement stmt = conn.createStatement(); 
    try { 
     ResultSet rset = stmt.executeQuery("select BANNER from SYS.V_$VERSION"); 
     try { 
     while (rset.next()) 
      System.out.println (rset.getString(1)); // Print col 1 
     } 
     finally { 
      try { rset.close(); } catch (Exception ignore) {} 
     } 
    } 
    finally { 
     try { stmt.close(); } catch (Exception ignore) {} 
    } 
    } 
    finally { 
    try { conn.close(); } catch (Exception ignore) {} 
    } 
    } 
} 
+3

1) Class.forName là không cần thiết. 2) Quá nhiều thử/bắt. Đó là enought để đóng kết nối và nó sẽ tự động đóng tất cả mọi thứ 3) Tôi không chắc chắn, nhưng trong trường hợp của bạn orcl không phải là một dịch vụ, do đó, url nên được jdbc: oracle: thin: @ // localhost: 1521: orcl – damluar

+0

Cảm ơn ! Dù sao, là mã thông báo dịch vụ tùy chọn? Hoặc có thể đó là tên của cơ sở dữ liệu tôi đang kết nối đến? –

+0

@matkiros Có tùy chọn. – trojanfoe

6

Các tập tin JAR chính thức kết hợp với JDK 1.6 là ojdbc6.jar. Nhưng ojdbc4.jar sẽ hoạt động đối với hầu hết các ứng dụng.

chuỗi kết nối Typicall là:

jdbc:oracle:thin:user/[email protected]:port:SID 
jdbc:oracle:thin:user/[email protected]//server:port/XE 
jdbc:oracle:thin:user/[email protected]:SID 
Các vấn đề liên quan