gpt4 book ai didi

java - 自定义映射器类没有得到结果?

转载 作者:行者123 更新时间:2023-12-02 03:12:36 26 4
gpt4 key购买 nike

我正在编写一个 DAO 应用程序,我想获取区域数据。我已经编写了自己的映射器类。我无法获取值。它抛出异常。

映射器类

public class zoneMapper implements RowMapper {

@Override
public Object mapRow(ResultSet resultSet, int rowNum) throws SQLException {

ZoneBean zone=new ZoneBean();
zone.setZoneId(resultSet.getInt("ZONE_ID"));
zone.setZoneName(resultSet.getString("ZONE_NAME"));
return zone;

}

dao 调用

List<ZoneBean> zoneList=new ArrayList<ZoneBean>();
try {
JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource);

zoneList = (List<ZoneBean>) jdbcTemplate.queryForObject(
queriesConstants.GET_ZONES, new zoneMapper());
}catch(Exception e){
System.out.println("getZones "+e.getMessage());
//logger.error("getZones "+e.getMessage());
}
**Exception is**
getZones Incorrect result size: expected 1, actual 17

最佳答案

getZones Incorrect result size: expected 1, actual 17

执行查询时,您会检索多个元素。

public <T> T queryForObject(String sql, RowMapper<T> rowMapper)因此不适合您的需要,因为它执行给定静态 SQL 的查询,通过 RowMapper 将单个结果行映射到 Java 对象。

你应该使用这种方法:

public <T> List<T> query(String sql, RowMapper<T> rowMapper)它执行给定静态 SQL 的查询,通过 RowMapper将每一行映射到 Java 对象。

关于java - 自定义映射器类没有得到结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40819670/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com