我下载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:\F\oracle\sql>javac SqlConnectTest.java -Djava.ext.dirs=./
D:\F\oracle\sql>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运行成功了,前面是直接用命令行运行的。(还是不清除那儿错了,但是代码的对的,包也是对了)