Tags:JDBC
在Statement和ResultSet接口中都有setFetchSize方法
void setFetchSize(int rows)
throws SQLException
查看API文档
Statement接口中是这样解释的:
为
JDBC 驱动程序提供一个提示,它提示此
Statement
生成的
ResultSet
对象需要更多行时应该从数据库获取的行数。指定的行数仅影响使用此语句创建的结果集合。如果指定的值为 0,则忽略该提示。默认值为 0。
ResultSet中是这样解释的:
为 JDBC 驱动程序设置此
ResultSet
对象需要更多行时应该从数据库获取的行数。如果指定的获取大小为零,则 JDBC 驱动程序忽略该值,随意对获取大小作出它自己的最佳猜测。默认值由创建结果集的
Statement
对象设置。获取大小可以在任何时间更改。
网上有下面这样的一段摘录1:
缺省时,驱动程序一次从查询里获取所有的结果。这样可能对于大的数据集来说是不方便的, 因此 JDBC 驱动提供了一个用于设置从一个数据库游标抽取若干行的 ResultSet 的方法。在连接的客户端这边缓冲了一小部分数据行,并且在用尽之后, 则通过重定位游标检索下一个数据行块。
摘录2:
setFetchSize最主要是为了减少网络交互次数设计的。访问ResultSet时,如果它每次只从服务器上取一行数据,则会产生大量的开销。setFetchSize的意思是当调用rs.next时,ResultSet会一次性从服务器上取得多少行数据回来,这样在下次rs.next时,它可以直接从内存中获取出数据而不需要网络交互,提高了效率。 这个设置可能会被某些JDBC驱动忽略的,而且设置过大也会造成内存的上升。
另外在《Best practices to improve performance in JDBC》一文中也提及该方法的使用用于提高查询效率,有名词将之成为batch retrieval
注:该文在Core Java目录下有收藏
分享到:
相关推荐
总结:JDBC是Java开发数据库应用的基础,通过学习JDBC,开发者可以掌握如何在Java程序中执行SQL语句,处理数据库连接和事务,以及进行性能优化和安全实践。JDBC教程PPT将深入讲解这些概念,提供实用示例,帮助你快速...
4. 使用Statement的setFetchSize()方法,优化数据检索性能。 JDBC是Java开发者与数据库进行交互的基础,理解和熟练掌握JDBC对于开发数据库相关的Java应用至关重要。通过深入学习和实践,可以更高效地利用JDBC进行...
同时,通过使用Statement的setFetchSize()方法,开发者可以实现数据的分页,提高应用性能。 JDBC2还引入了**存储过程的支持(Support for Stored Procedures)**。开发者可以调用数据库中的存储过程,获取返回值,...
#### 二、JDBC基础知识与解决方案 为了有效地解决这个问题,我们首先需要了解如何使用JDBC来创建和管理`ResultSet`对象,并掌握如何通过调整查询行为来优化性能。 ##### 2.1 创建ResultSet `ResultSet`对象是JDBC...
1. **JDBC基础**:JDBC是一个Java API,它提供了一组接口和类,用于连接、查询和操作数据库。主要包括以下组件: - `java.sql.DriverManager`:管理数据库驱动,用于建立数据库连接。 - `java.sql.Connection`:...
总之,MySQL驱动程序是Java应用程序与MySQL数据库之间的桥梁,理解和正确使用它是进行数据库操作的基础。了解如何添加、注册和使用驱动,以及如何处理可能出现的问题,是每个Java开发者必备的技能之一。
在Java中,通常通过`Class.forName()`方法来加载特定数据库的JDBC驱动。例如,对于MySQL,我们会写`Class.forName("com.mysql.jdbc.Driver")`。这使得Java应用程序能够识别并使用相应的数据库驱动,从而能够与数据库...
另外,为了优化性能,可以考虑使用`ResultSet`的`setFetchSize()`方法控制数据的获取量,避免一次性加载大量数据导致内存压力。 总之,理解并熟练运用`DriverManager`、`Connection`、`Statement`和`ResultSet`这些...
数据库性能优化是一个涉及多个层面的综合过程,不仅需要程序员具备一定的理论基础,还需要通过实践不断积累经验。本文所列举的优化法则仅仅是冰山一角,实际应用中还需根据具体情况灵活调整策略。最重要的是,始终...
2. 使用JDBC API:通过设置Statement的`setFetchSize()`方法来控制每次查询的数据量,但这并不等同于真正的分页,只是在结果集上做了一次内存级别的分页,对大数据量可能导致内存溢出。 3. ORM框架支持:例如...