嵌套回调处理程序?

时间:2010-08-16 08:21:14

标签: java sql callback logic

我从数据库中获取一组数据,其中查询产生具有不同“特殊”值的重复数据。例如,用户“A”可以重复两次,在“特殊列”下有三个不同的“特殊”值。

我正在使用回调处理程序来检索数据并将其放入列表中,现在另外我希望Special列具有自己的回调,其中每个用户都会存储特殊列表,因此用户数据不会是反复拍摄并存储到列表中,我不必手动过滤掉它。有人能指出我实现这个目标的方向吗?

实现这一目标的另一种方法是将结果连接到一个字符串本身,这会更容易,但是当我包含连接时,查询似乎很复杂和混乱。

代码在

之下
    String query   = getQuery(SPECIALS_REPORT_QUERY);

    getJdbcTemplate().query(query, parameters, dataTypes, new RowCallbackHandler() {
        @Override
        public void processRow(ResultSet rs) throws SQLException {

            SpecialsResultsSetDTO dto = new SpecialsResultsSetDTO();

            dto.setRoomNo(rs.getString("ROOM_NO"));
            dto.setGuestName(rs.getString("GUEST_NAME")); 
            dto.setNoOfAdults((rs.getInt("NO_OF_ADULTS"))); 
            dto.setNoOfChildren(rs.getInt("NO_OF_CHILDREN"));
            dto.setNoOfInfants(rs.getInt("NO_OF_INFANTS"));
            dto.setMealPlanCode(rs.getString("MEAL_PLAN_CODE"));
            dto.setArrivalDateTime(rs.getDate("ARRIVAL_DATE_TIME"));
            dto.setDepartureDate(rs.getString("DEPARTURE_DATE"));

            //there should be a callback handler or something to store the data to a list in the dto bean object (for the specials)

            dtoList.add(dto);
        }
    });

有关解决此问题的任何建议都会有所帮助

此致 弥兰陀

1 个答案:

答案 0 :(得分:0)

在你的dto中你不能创建一个hashmap,它将用户作为键,特殊值作为列。