【问题标题】:Issue in connecting Java thin driver in oracle 11G r2在 oracle 11G r2 中连接 Java 瘦驱动程序的问题
【发布时间】:2012-11-20 00:11:04
【问题描述】:
public static  Connection getConnection()throws SQLException,ClassNotFoundException
       { String username="scott";
            String password="tiger";

            String url="jdbc:oracle:thin:@localhost:1521";
        Connection connection = null;
        System.out.println("before class");
                   Class.forName("oracle.jdbc.OracleDriver");
                   System.out.println("Before connection");
                connection=DriverManager.getConnection(url,username,password);
           System.out.println("CONNECTED");
        return connection;
       }

连接名称:orcl 用户名:斯科特 密码:老虎 连接详情:scott@

我使用的是 Oracle g11 第 2 版,并且我已经在构建路径中包含了 ojdbc.jar。尝试建立连接时,出现以下堆栈跟踪错误:

java.sql.SQLException: Io 异常: 无效的连接字符串格式, 有效格式为:“host:port:sid” at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:134) 在 oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:179) 在 oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:333) 在 oracle.jdbc.driver.OracleConnection.(OracleConnection.java:404) 在 oracle.jdbc.driver.OracleDriver.getConnectionInstance(OracleDriver.java:468) 在 oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:314) 在 java.sql.DriverManager.getConnection(Unknown Source) 在 java.sql.DriverManager.getConnection(Unknown Source) 在 com.adobe.util.DBConnection$DBUtil.getConnection(DBConnection.java:23) 在 com.adobe.daoimpl.DBimplementation.registration(DBimplementation.java:21) 在 com.adobe.service.AdobeService.registration(AdobeService.java:13) 在 webservice.Web.service(Web.java:16) 在 sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 在 sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(未知来源)在 java.lang.reflect.Method.invoke(未知来源)在 org.apache.axis.providers.java.RPCProvider.invokeMethod(RPCProvider.java:397) 在 org.apache.axis.providers.java.RPCProvider.processMessage(RPCProvider.java:186) 在 org.apache.axis.providers.java.JavaProvider.invoke(JavaProvider.java:323) 在 org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:32) 在 org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:118) 在 org.apache.axis.SimpleChain.invoke(SimpleChain.java:83) 在 org.apache.axis.handlers.soap.SOAPService.invoke(SOAPService.java:454) 在 org.apache.axis.server.AxisServer.invoke(AxisServer.java:281) 在 org.apache.axis.transport.http.AxisServlet.doPost(AxisServlet.java:699) 在 javax.servlet.http.HttpServlet.service(HttpServlet.java:647) 在 org.apache.axis.transport.http.AxisServletBase.service(AxisServletBase.java:327) 在 javax.servlet.http.HttpServlet.service(HttpServlet.java:728) 在 org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)

提前致谢

【问题讨论】:

    标签: java oracle11g thin sqlexception


    【解决方案1】:

    刚刚解决了这个问题:jdbc:oracle:thin:@//ipadress:portnumber/service_name

    【讨论】:

      【解决方案2】:

      连接字符串末尾缺少 SID(或服务名称)。

      必须是“host:port:sid”

      【讨论】:

      • 添加了 sid 然后它显示以下错误这是我给的。orcl 是我的连接名称如果我做错了请更正 "jdbc:oracle:thin:@localhost:1521:orcl"在将 SID 添加为 orcl java.sql.SQLException: ORA-28000: the account is locked at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:134) at oracle.jdbc.ttc7 后,它向我显示了以下错误。 TTIoer.processError(TTIoer.java:289) at oracle.jdbc.ttc7.O3log.receive2nd(O3log.java:496) at oracle.jdbc.ttc7.TTC7Protocol.logon(TTC7Protocol.java:278) 你能帮我吗这个
      【解决方案3】:

      应该是

      String url="jdbc:oracle:thin:@Localhost:1521:XE";

      【讨论】:

        【解决方案4】:

        在您的连接字符串中添加数据库SID

        String url="jdbc:oracle:thin:@localhost:1521:SID_GOES_HERE";
        

        【讨论】:

        • 在将 SID 添加为 orcl 后向我显示以下错误这是我给的。orcl 是我的连接名称如果我做错了请更正 "jdbc:oracle:thin:@localhost:1521: orcl" java.sql.SQLException: ORA-28000: 帐户被锁定在 oracle.jdbc.ttc7.TTIoer.processError(TTIoer.java:289) 的 oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:134)在 oracle.jdbc.ttc7.O3log.receive2nd(O3log.java:496) 在 oracle.jdbc.ttc7.TTC7Protocol.logon(TTC7Protocol.java:278) 你能帮我吗
        • ALTER USER username ACCOUNT UNLOCK,同时确保您的用户已被授予正确的权限。
        • 不走运,我不知道 oracle 连接等等。请在这方面帮助我。我在 sql developer 中创建本地连接,在连接中我正在更改为 Local/Bequeath 并创建数据库和在这个我正在创建表。有什么必须做的,而不是这个
        • 在 sql developer 中以 sys 用户身份连接。您将看到“其他用户”展开此内容。右键单击架构并查看属性。在此对话框中应该有一个选项来解锁用户并授予权限。我手边没有 sql developer,所以这些说明并不准确。
        • 我可以连接,但它说表/视图不存在,但我创建了一个名为 adobetrail 的表并在 sqlplus SQL 中检查> select * from tab; TNAME TABTYPE CLUSTERID ------------------------------ -------- ---------- ADOBETRAIL TABLE 下面是我的控制台消息 CONNECTED java.sql.SQLException: ORA-00942: table or view does not exist at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:134) at oracle.jdbc.ttc7.TTIoer。进程错误(TTIOer.java:289)
        【解决方案5】:

        而且你的 SID 可能是 XE,所以它应该是 jdbc:oracle:thin:Localhost:1521:XE

        【讨论】:

          【解决方案6】:

          我遇到了同样的问题,同样的错误:

          java.sql.SQLException: Io exception: Invalid connection string format, a valid format is: "host:port:sid"
          

          我通过更新我的 JDBC 驱动程序解决了这个问题。在我的特殊情况下,从 ojdbc7.jar 到 ojdbc8-12.2.0.1.jar

          【讨论】:

            猜你喜欢
            • 2011-04-04
            • 1970-01-01
            • 2014-12-02
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2013-11-05
            • 2011-04-24
            • 1970-01-01
            相关资源
            最近更新 更多