什么jdbc jar与oracle 11g&jdk 1.6一起使用以及如何连接到db本身

Mat*_*ros 10 oracle jdbc oracle11g

我正在用Java编写数据库访问器.数据库在Oracle 11g中,我绝对不熟悉,我有JDK 1.6.

  1. ojdbc4.jar会为我的程序做吗?我们不允许在办公室连接到互联网,我无法下载ojdbc6.jar,我读过它与我的设置更兼容.
  2. 我应该在Class.forName(String driver)和DriverManager.getConnection(String connectionURL)中添加哪些字符串?我不知道驱动程序字符串和连接URL,因为它们(自然地)看起来与MS SQL Server的不同.

tro*_*foe 18

  1. Oracle将Jar与Oracle客户端或服务器安装捆绑在一起,可以在中找到$ORACLE_HOME/jdbc/lib/ojdbc6.jar.我总是用那个.

  2. Driver类名是oracle.jdbc.OracleDriver,URL是jdbc:oracle:thin:@//[HOST][:PORT]/SERVICE.

这是一个例子(取自这里):

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) {}
   }
  }
}
Run Code Online (Sandbox Code Playgroud)

  • 1)不需要Class.forName.2)尝试/捕获太多.它应该关闭连接,它会自动关闭所有内容3)我不确定,但在你的情况下orcl不是服务,所以url应该是jdbc:oracle:thin:@ // localhost:1521:orcl (3认同)

Cod*_*odo 6

与JDK 1.6结合使用的官方JAR文件是ojdbc6.jar.但ojdbc4.jar应该适用于大多数应用程序.

典型的连接字符串是:

jdbc:oracle:thin:user/xxxx@server:port:SID
jdbc:oracle:thin:user/xxxx@//server:port/XE
jdbc:oracle:thin:user/xxxx@:SID
Run Code Online (Sandbox Code Playgroud)