gpt4 book ai didi

java - 如何使用jdbcTemplate为pojo类变量设置多行

转载 作者:行者123 更新时间:2023-12-01 10:52:12 26 4
gpt4 key购买 nike

我是 Spring 新手,我正在尝试使用 spring jdbcTemplate 从表中获取数据并设置为 pojo 类,如下代码所示,

@RequestMapping(value = "/getdevicedata/{macId}", method = RequestMethod.GET, produces = "application/json")
@ResponseBody
public DeviceAnalyse getDevicedata(@PathVariable String macId, HttpServletResponse response) throws Exception {
DeviceAnalyse deviceAnalyse = new DeviceAnalyse();
//List<DeviceAnalyse> deviceAnalyse = new ArrayList<>();
if (!isValidMacId(macId)) {
deviceAnalyse.setDId("Invalid device Id");
return deviceAnalyse;

}
DeviceAnalyse temp = new DeviceAnalyse();
try{
temp = new DeviceAnalyse();
String sql = "select value,serverTimeStamp,sensorType,percentage from tablename";
temp = (DeviceAnalyse)jdbcTemplate.queryForObject(sql, new Object[]{macId}, new BeanPropertyRowMapper(DeviceAnalyse.class));
deviceAnalyse.setPercentage(temp.getPercentage());
deviceAnalyse.setSensorType(temp.getSensorType());
deviceAnalyse.setServerTimeStamp(temp.getServerTimeStamp());
deviceAnalyse.setValue(temp.getValue());

}
catch(Exception e){
System.out.println(e);
e.printStackTrace();
deviceAnalyse.setPercentage(0L);
deviceAnalyse.setSensorType("");
deviceAnalyse.setServerTimeStamp(null);
deviceAnalyse.setValue(0L);
}

return deviceAnalyse;
}

这里的DeviceAnalyse是我的pojo类,它有所有的getter setter。但我得到结果大小不正确:预期 1,实际 4

如何解决这个问题并将所有检索值设置为 pojo 类?喜欢

while(resultset.next())
{
deviceAnalyse.setPercentage(temp.getPercentage());
deviceAnalyse.setSensorType(temp.getSensorType());
deviceAnalyse.setServerTimeStamp(temp.getServerTimeStamp());
deviceAnalyse.setValue(temp.getValue());
}

最佳答案

您在代码中犯了一个简单的错误。您应该调用jdbcTemplate.query而不是jdbcTemplate.queryForObject .

jdbcTemplate.queryForObject 预计结果中只有一行,因为 RowMapperResultSetExtractor初始化为 1 。相反 jdbcTemplate.query 返回所有行。

不要忘记更改您的 temp变量为List<DeviceAnalyse> .

调用jdbcTemplate可能看起来像这样:

List<DeviceAnalyse> temp = jdbcTemplate.query(sql, new Object[]{macId}, new BeanPropertyRowMapper(DeviceAnalyse.class));

关于java - 如何使用jdbcTemplate为pojo类变量设置多行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33800019/

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