无法通过 JDBC 连接 Oracle 10g Release 2 (10.2) Express Edition

Posted

技术标签:

【中文标题】无法通过 JDBC 连接 Oracle 10g Release 2 (10.2) Express Edition【英文标题】:Unable to connect Oracle 10g Release 2 (10.2) Express Edition through JDBC 【发布时间】:2013-01-28 19:49:04 【问题描述】:

我正在开发一个 Java EE 项目。我在我的项目 WebContent/WEB-INF/lib 中包含了来自 here 的 ojdbc14.JAR

我写的代码:

Connection conn = null;
String driverName = "oracle.jdbc.OracleDriver";
String url = "jdbc:oracle:thin:@//127.0.0.1:8080/apex";
Class.forName(driverName);
conn = DriverManager.getConnection(url, "system", "mahesh");

我得到的运行时异常是:

java.sql.SQLException: Io exception: Got minus one from a read call
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112)
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:146)
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:255)
at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:387)
at oracle.jdbc.driver.PhysicalConnection.<init>(PhysicalConnection.java:420)
at oracle.jdbc.driver.T4CConnection.<init>(T4CConnection.java:165)
at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:35)
at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:801)
at java.sql.DriverManager.getConnection(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
at com.obos.utility.ConnectionManager.main(ConnectionManager.java:26)

从最后一行开始,异常发生在 DriverManager.getConnection()

我怀疑问题出在连接字符串上,因为我可以通过 SQL 命令行实用程序使用用户名和密码登录。但我无法纠正它。

我使用“jdbc:oracle:thin:@//127.0.0.1:8080/apex”,因为我在浏览器中通过以下地址获取数据库管理器:

但是我也尝试过“jdbc:oracle:thin:@//127.0.0.1:8080”,但没有用。请帮忙。

我正在运行 Windows 8 x64。

【问题讨论】:

【参考方案1】:

8080 是托管 Web 应用程序的 Web 服务器的端口,允许访问数据库。数据库本身不在此端口上侦听。 AFAIR,Oracle数据库的默认端口是1521。阅读http://docs.oracle.com/cd/B25329_01/doc/appdev.102/b25320/getconn.htm了解更多信息。

【讨论】:

【参考方案2】:

你和我犯了同样的错误

连接字符串应该是

字符串 url = jdbc:oracle:thin:@127.0.0.1:1521:XE

【讨论】:

以上是关于无法通过 JDBC 连接 Oracle 10g Release 2 (10.2) Express Edition的主要内容,如果未能解决你的问题,请参考以下文章

如何通过 JDBC 将 Java 存储过程加载到 Oracle 10g 中?

myeclipse连接oracle 10g时,发生Locale not recognized异常

连接 Oracle 10g Express Edition 和 Java

JMeter学习JDBC测试计划-连接Oracle

无法连接 Tomcat 6 和 oracle 10g XE 进行 jsp 数据库连接

JDBC连接ORACLE