无法通过 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