【问题标题】:what jdbc jar to use with oracle 11g & jdk 1.6 and how to connect to the db itself什么 jdbc jar 与 oracle 11g & jdk 1.6 一起使用以及如何连接到数据库本身
【发布时间】:2011-12-21 20:56:35
【问题描述】:

我正在用 Java 编写数据库访问器。数据库在Oracle 11g,我完全不熟悉,我有JDK 1.6。

  1. ojdbc4.jar 是否适用于我的程序?我们办公室不允许连接互联网,我也无法下载 ojdbc6.jar,我读过它与我的设置更兼容。
  2. 我应该在 Class.forName(String driver) 和 DriverManager.getConnection(String connectionURL) 中放入什么字符串?我不知道驱动程序字符串和连接 URL,因为它们(自然)看起来与 MS SQL Server 的完全不同。

【问题讨论】:

    标签: oracle jdbc oracle11g


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

    2. 驱动程序类名为oracle.jdbc.OracleDriver,URL 为jdbc:oracle:thin:@//[HOST][:PORT]/SERVICE

    这是一个例子(取自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) {}
       }
      }
    }
    

    【讨论】:

    • 1) 不需要 Class.forName。 2)太多的尝试/捕获。关闭连接就足够了,它会自动关闭一切 3)我不确定,但在你的情况下 orcl 不是服务,所以 url 应该是 jdbc:oracle:thin:@//localhost:1521:orcl跨度>
    • 谢谢!无论如何,服务令牌是可选的吗?或者那可以是我要连接的数据库的名称吗?
    • @matkiros 是的,它是可选的。
    • 那么我将要连接的数据库的名称放在哪里?
    • 更新:上面 DriverManager.getConnection() 的参数格式可能会导致 SQLException 说“网络适配器无法建立连接”。要解决此问题,请尝试使用以下语法:jdbc:oracle:thin:@SERVER:PORT_NUMBER/DATABASE_NAME,其中端口号是可选的。
    【解决方案2】:

    结合 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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-11-24
      • 2014-04-22
      • 1970-01-01
      • 2015-09-04
      • 2015-03-16
      相关资源
      最近更新 更多