2011-03-06 37 views
1

我正在使用JDBCTemplate获取记录...我的表有46,000行,我想使用rowmapper将其包装在用户类型对象中。JDBCTemplate无法获取超过1500条记录

但是,当我尝试下面的代码时,显示“执行SQL查询[选择USER_ID,从Q7.USERBSC_INFO的STAT_CD ='ACTIVE']”,之后什么都没有发生......我等了15分钟,但仍然什么都没有显示。 。但应用程序仍然工作......也不例外

我使用DB2的JCC驱动程序,这是一个主机DB2

但是当我运行查询仅1500年记录它做工精细...没有任何限制获取记录?

当我运行AQT客户端内相同的查询,它工作正常...

public List<usr> getusr() { 
     List<usr> list = new ArrayList<usr>(); 
     String query = "Select USER_ID,Desc from Q7.USERBSC_INFO where STAT_CD='ACTIVE'"; 

list = getJdbcTemplate().query(query, DB2RowMapper.mUsrInfo); 

     return list; 
    } 

的RowMapper

public static RowMapper mUsrInfo = new RowMapper() 
       { 
        public Object mapRow(ResultSet rs, int rowNum) throws SQLException 
        { 

         Usr usr=new Usr(); 
         usr.setUsrId(rs.getString("USER_ID")); 
         usr.setDesc(rs.getString("DESC")); 
         return usr; 

        } 
       }; 
+0

在“工作”的那15分钟内 - 是否有任何CPU使用?您可以在调试器下运行代码,例如从IDE? – 2011-03-06 07:02:46

+0

我注意到一件事,当我试图获取高达1637记录它工作正常,但如果我使用1638它给出了下面的错误:com.ibm.db2.jcc.c.DisconnectException:在相同的id链解析结束时,dss长度不是0 – Nits 2011-03-06 11:30:58

回答

0

可以限制没有记录在了Spring JDBC模板(使用maxRows进行选项),但在这里不认为是这种情况。 我猜没有记录()46000那些被提取是这个延迟的原因...

您可以尝试优化您的查询或者尝试使用这一条款在年底可能是它可能会帮助

OPTIMIZE FOR n ROWS 
+0

当我尝试获取1638条记录时,它说下面的错误:com.ibm.db2.jcc.c.DisconnectException:在相同的id链解析结束时,dss长度不是0 – Nits 2011-03-06 11:32:24