有一个数据库,它在一个表中大约包含200万条记录。我从我的Java代码中运行查询,例如“ select * from table”。是否将从结果集中的数据库中获取完整数据。或不 。如果是,那么它将如何工作,我想学习此检索工作,
请让我知道,我在某处了解到它将从数据库中检索完整的数据并将其存储在临时存储中,并在输出中显示出来。还是与J2C有关
它会从结果集中的数据库中获取完整数据吗?
没有确切的答案。它始终取决于数据库驱动程序。结果集是一个接口,其实现由特定的数据库驱动程序完成。ResultSet实现 可能 有自己的优化,其中对于较小的数据集,将提取所有内容,对于较大的数据集,则对其进行缓冲(或某些默认的分页机制)。因此,请参考数据库驱动程序文档。
有一种标准的方法(至少javadoc这么说)来防止从数据库中获取大数据。如下设置JDBC语句的适当提取大小java.sql.Statement.setFetchSize()。
java.sql.Statement.setFetchSize()
作为Java文档
当需要更多行时,为JDBC驱动程序提供有关应从数据库中获取的行数的提示。指定的行数仅影响使用此语句创建的结果集。如果指定的值为零,则忽略提示。默认值为零。
希望这可以帮助。