首页 > 解决方案 > 春季启动,jdbcTemplate,Java

问题描述

我有一个从数据库中获取一列行的查询,我想将此数据设置为我的模型。我的模型名称是图片,我的方法如下:

@Override
public Pictures getPictureList() throws Exception {
    JdbcTemplate jdbc = new   JdbcTemplate(datasource);
    String sql= "select path from  bakery.pictures where id=1";
    Pictures pcList = jdbc.query(sql, new BeanPropertyRowMapper<Pictures>(Pictures.class));
    return pcList;
}

此方法返回“查询被推断到列表”。我该如何解决?

标签: javaspring-boot

解决方案


使用JdbcTemplate.queryForObject()方法通过它的主键检索单行。

Pictures p = jdbc.queryForObject(sql, 
        new BeanPropertyRowMapper<Pictures>(Pictures.class));

JdbcTemplate.query()如果您通过主键查询,将返回多行,这没有什么意义。

List<Pictures> list = jdbc.query(sql, 
        new BeanPropertyRowMapper<Pictures>(Pictures.class));
Picture p = list.get(0);

推荐阅读