0

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

但是当我尝试下面的代码时,它显示“执行 SQL 查询 [Select USER_ID,Desc from Q7.USERBSC_INFO where 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;
    }

行映射器

 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;

                    }
                };
4

1 回答 1

0

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

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

OPTIMIZE FOR n ROWS
于 2011-03-06T07:18:03.407 回答