问题描述
- 【求助】java使用jdbc连接Oracle 11g ex版本数据库时的问题
-
我下载Oracle数据库连接驱动类与SqlConnectText.java在同一目录下,是ojdbc6.jar
数据库版本是Oracle11g Express版本,SID是xe
JDK是1.6版本的
然后端口1521正在被监听
这是Java类代码import java.sql.*; public class SqlConnectTest { private static String dbUrl = "jdbc:oracle:thin:@127.0.0.1:1521:xe"; private static String theUser = "root"; private static String thePw = "root"; public static void main(String[] args) { ResultSet rs = null; Connection conn = null; Statement stat = null; try { Class.forName("oracle.jdbc.driver.OracleDriver").newInstance(); DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver()); conn = DriverManager.getConnection(dbUrl, theUser, thePw); stat = conn.createStatement(); rs = stat.executeQuery("select * from AdminUser"); while (rs.next()) { System.out.println(rs.getString("username")+"--"+rs.getString("password")); } } catch (Exception e) { e.printStackTrace(); } finally { if(rs != null) { try { rs.close(); } catch(Exception e) {} } if(stat != null) { try { stat.close(); } catch(Exception e) {} } if(conn != null) { try { conn.close(); } catch(Exception e) {} } } } }
这是异常信息
D:Foraclesql>javac SqlConnectTest.java -Djava.ext.dirs=./D:Foraclesql>java -Djava.ext.dirs=./ SqlConnectTest
java.sql.SQLException: Socket read timed out
at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:412)
at oracle.jdbc.driver.PhysicalConnection.(PhysicalConnection.java:531)
at oracle.jdbc.driver.T4CConnection.(T4CConnection.java:221)
at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:32)
at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:503)
at java.sql.DriverManager.getConnection(DriverManager.java:582)
at java.sql.DriverManager.getConnection(DriverManager.java:185)
at SqlConnectTest.main(SqlConnectTest.java:36)
Caused by: oracle.net.ns.NetException: Socket read timed out
at oracle.net.ns.Packet.receive(Packet.java:320)
at oracle.net.ns.NSProtocol.connect(NSProtocol.java:286)
at oracle.jdbc.driver.T4CConnection.connect(T4CConnection.java:1042)
at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:301)实在是不知道出什么问题了,求大家帮忙解答
解决方案
java.sql.SQLException: Socket read timed out
说明连接超时,检查下防火墙、网络、Oracle服务器是否正常运行、用户名、密码。
解决方案二:
连接超时,如果想连接自己电脑的Oracle,把127.0.0.1改成localhost,要是服务器的话,检查下防火墙,网络的配置,要是别人的主机的话,那台主机有可能没开机^_^
解决方案三:
你的数据库是不是网络客户端没有配置,就是oracle的网络适配器? 你可以在其他电脑上 用sqldeveloper 工具连一下,如果连不上 那就是oracle的网络客户端没有配置
解决方案四:
Socket read timed out连接超时。
看看你的防火墙、网络、Oracle服务器是否正常运行。oracle的网络适配器是否支持127.0.0.1连接。
解决方案五:
谢谢各位,问题已经解决了,我用myeclipse运行成功了,前面是直接用命令行运行的。(还是不清除那儿错了,但是代码的对的,包也是对了)