0
我通过JDBC连接访问数据库时遇到问题。JDBC错误:在读取时检测到流结束
End of stream was detected on a read
错误发生在几个不同点是随机的。
我很感激任何帮助。
我通过JDBC连接访问数据库时遇到问题。JDBC错误:在读取时检测到流结束
End of stream was detected on a read
错误发生在几个不同点是随机的。
我很感激任何帮助。
此问题的根本原因在于您的Java代码和相关数据库服务器之间的通信线路。它可以是一切。 JDBC代码中的错误,JDBC驱动程序中的错误,NIC驱动程序中的错误,NIC蹩脚,网络电缆不良,数据库服务器断断续续,数据库服务器因为耗尽连接而丢失连接等等。
有没有直接的原因,即使不是基于堆栈跟踪。我会开始检查JDBC代码是否正确和健壮的书面。即在try/finally块中获取并关闭尽可能最短范围内的所有数据库资源。
E.g.
public Entity find(Long id) throws SQLException {
Connection connection = null;
PreparedStatement statement = null;
ResultSet resultSet = null;
Entity entity = null;
try {
connection = database.getConnection();
statement = connection.prepareStatement(SQL_FIND_BY_ID);
statement.setLong(1, id);
resultSet = statement.executeQuery();
if (resultSet.next()) {
entity = new Entity();
entity.setSomething(resultSet.getObject("something"));
// ...
}
} finally {
close(resultSet);
close(statement);
close(connection);
}
return entity;
}
下一步将升级JDBC驱动程序,然后检查硬件问题。
祝你好运击倒了问题的原因。
什么是堆栈跟踪?哪些点?什么数据库和什么JDBC驱动程序? – Dan 2010-02-11 19:09:52