查询返回多个记录

时间:2011-05-02 09:52:38

标签: java spring jdbc

我遇到一个使用Spring 3返回多个值的查询的问题。

我正在使用它来检索值,但从DB返回的TemplateFlow对象始终为空(所有字段都包含null或默认值)。

List<TemplateFlow> flows = (List<TemplateFlow>) getJdbcTemplate().query(
   sqlString, 
   ParameterizedBeanPropertyRowMapper.newInstance(TemplateFlow.class)
);

TemplateFlow是一个包含所有字段的类。我在更新后检索一些值,是否可能需要提交更改? (但我没有使用任何形式的交易)。

public class TemplateFlow {

    private int id_templateflow;
    private int id_templateprocess;

    public int id_templateflow() { return this.id_templateflow; }
    public void id_templateflow(int id_templateflow) { this.id_templateflow = id_templateflow; }    

    public int id_templateprocess() { return this.id_templateprocess; }
    public void id_templateprocess(int id_templateprocess) { this.id_templateprocess = id_templateprocess; }

}

我尝试直接在DB上运行查询,返回两行。

感谢您的帮助! 安德烈

1 个答案:

答案 0 :(得分:2)

您的TemplateFlow类不符合javabean模式,ParameterizedBeanPropertyRowMapper要求如此:

  

根据从结果集元数据中获取的列名与相应属性的公共setter匹配来映射列值。

例如,您应该

int getId_templateflow()
void setId_templateflow(int)

而不是

int id_templateflow()
void id_templateflow(int)

但是,我建议不要使用ParameterizedBeanPropertyRowMapper - 它会将您的数据库与您的代码紧密耦合,这不是一件好事。请考虑编写自己的RowMapper实现。