简单JDBC连接数据库 异常!!100分!

来源:百度知道 编辑:UC知道 时间:2024/09/23 16:21:23
import java.sql.*;
public class TestJDBC {
public static void main(String[] args)throws Exception {
Class.forName("oracle.jdbc.driver.OracleDriver");
Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@192.168.1.100:1521:PLSExtProc","scott","tiger");
Statement stmt = conn.createStatement();
ResultSet rs =stmt.executeQuery("select * from employees");
while(rs.next()){
System.out.println(rs.getString("DEPARTMENT_ID"));
System.out.println(rs.getInt("DEPARTMENT_ID"));
}
rs.close();
stmt.close();
conn.close();
}
}
上面是程序
错误信息:
Exception in thread "main" java.sql.SQLException: 无法从套接字读取更多的数据
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:111)
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:145)
at oracle.jdbc.driver.Data

8i以前是sid,以后就service_name和sid都可以了,而且同过oracle的jdbc的thin协议方式,他根本就不会使用你的tnsnames
sid是启动实例必需的环境变量,service_name你可以通过oracle查询,这两个你都可以试试
你的问题我觉得跟使用这个没关系,你可以考虑换换不同版本的驱动试试

TNSNAMES配置:
# tnsnames.ora Network Configuration File: D:\oracle\network\admin\tnsnames.ora
# Generated by Oracle configuration tools.

ORCL =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.100)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl)
)
)

EXTPROC_CONNECTION_DATA =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
)
(CONNECT_DATA =
(SID = PLSExtProc)
(PRESENTATION = RO)

1521端口后面应该加的是sid啊,我记得我们老师当初上课时讲的就是加sid啊,sid在安装oracle数据库的时候是可以更改的,你是不是把它改成了你的那个SERVICE_NAME 啊?