JDBCTemplate不提取超过1500的记录

时间:2011-03-06 04:27:53

标签: java spring jdbctemplate

我正在使用JDBCTemplate来获取记录...我的表有46,000行,我想用rowmapper包装在用户类型对象中。

但是当我尝试下面的代码时,它显示“执行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;

                    }
                };

1 个答案:

答案 0 :(得分:0)

您可以限制spring Jdbc Template中的记录数(使用maxRows选项),但不要认为这是这种情况。 我想正在获取的记录()46000的数量是这种延迟的原因......

您可以尝试优化您的查询,否则尝试最后使用此子句可能会有所帮助

OPTIMIZE FOR n ROWS