原以为 statement的executequery()会将所有结果返回。
比如
Statement stmt = null;
String query = "select * from tab1";
try {
stmt = con.createStatement();
ResultSet rs = stmt.executeQuery(query);
之前以为,执行到这里时,数据已经保存在变量rs中,如果数据量很大,会把内存撑爆;
经过最近的一次测试发现,其实rs中只保存少量数据(如10条),其他数据依旧只在数据库服务器中,
通过rs.next()少量数据取完后,才会从数据库取数据到本地;并且rs.next()速度非常快,多个线程处理时,从服务器获取数据的速度非常惊人,经测试,速度的瓶颈在于网络带宽。
应用该特点,可以实现单表数据的快速导出
后记:今天在mysql测了一下,发现事情又并非如此,执行executeQuery函数的时候,所有数据会全部加载
分享到:
相关推荐
不过,如果要在JavaScript环境中与数据库交互,可以使用Node.js的JDBC库如'jdbc'或者更常见的MongoDB、PostgreSQL等特定数据库的驱动。 在`jdbc-programs-in-java-master`这个压缩包中,可能包含了JDBC编程的示例...
ojdbc8驱动对于db2数据库的兼容性描述可能存在误解,因为ojdbc是专为Oracle数据库设计的,而db2有其自己的JDBC驱动。不过,如果确实能够在特定环境下实现对db2的连接,那可能是由于两者之间存在某些相似的API或兼容...
在Java中,可以使用JDBC API执行SQL命令来导出数据到文件,例如`SELECT INTO OUTFILE`命令。此外,还可以调用数据库的备份API(如果提供)或者集成第三方备份工具,如MySQL的`mysqldump`。 4. **数据库还原**: ...
中文版API文档对于理解复杂的概念和术语更为友好,减少了翻译过程中的误解。英文版则是原汁原味的技术资料,对于学习最新的技术趋势和技术更新更为及时。两者结合使用,既能保证理解准确性,又能提高阅读速度,是...
如何使用方法的返回值? 166 7.4.4 使用return结束方法 166 7.5 方法重载(overload):给汽车加速添个限制 168 7.5.1 什么是方法的签名 168 7.5.2 什么是重载?为什么要重载? 168 7.5.3 给汽车加个重载的方法...
如何使用方法的返回值? 166 7.4.4 使用return结束方法 166 7.5 方法重载(overload):给汽车加速添个限制 168 7.5.1 什么是方法的签名 168 7.5.2 什么是重载?为什么要重载? 168 7.5.3 给汽车加个重载的方法...
- 通过继承`Thread`类的方式可以直接使用`Thread`类中的方法。 - 实现`Runnable`接口的方式更加灵活,可以被多个线程共享。 ### 19. Java类的访问控制 - **默认访问权限**:如果一个类没有明确指定访问控制符,...
8. **JDBC数据库连接**:Java Database Connectivity (JDBC) 是Java访问数据库的标准API,涉及DriverManager、Connection、Statement和ResultSet等关键组件。 9. **设计模式**:SIRMA项目中可能会遇到设计模式的...