java - 查询返回多条记录

标签 java spring jdbc

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

我使用它来检索值,但从数据库返回的 TemplateFlow 对象始终为 null(所有字段都包含 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; }

}

我尝试直接在数据库上运行查询,它返回两行。

感谢帮助! 安德里亚

最佳答案

您的 TemplateFlow 类不符合 javabean 模式,并且 ParameterizedBeanPropertyRowMapper要求是这样的:

Column values are mapped based on matching the column name as obtained from result set metadata to public setters for the corresponding properties.

例如,您应该有

int getId_templateflow()
void setId_templateflow(int)

而不是

int id_templateflow()
void id_templateflow(int)

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

关于java - 查询返回多条记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5855722/

相关文章:

mysql - 在 MYSQL 查询中使用 TOP 删除重复项会引发错误代码

java - 将 JComboBox 与 SQL 链接

java - 服务器重启时如何处理Quartz简单触发

java - Spring MVC + Hibernate @Transactional 异常后不回滚

java - spring远程分区策略如何在不同机器上启动slave

java - 如何使用 Grails 3.0 配置 PostgreSQL?

java - 如何在 Javafx 中添加音频剪辑?

java - 我应该用什么来跟踪 java 中可变对象的详细信息

java - 对二维数组进行冒泡排序时出现空指针异常

java - "-Drun.profiles=.."尝试执行 Spring Boot jar 时不起作用