jdbc 中statement用法的误解

原以为 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()速度非常快,多个线程处理时,从服务器获取数据的速度非常惊人,经测试,速度的瓶颈在于网络带宽。
应用该特点,可以实现单表数据的快速导出

猜你喜欢

转载自peter1981.iteye.com/blog/2324009
今日推荐