Spring jdbc-getJdbcTemplate().queryForList

Spring jdbc-getJdbcTemplate().queryForList,spring,jdbc,Spring,Jdbc,下面的查询在sql Developer中执行时返回单个结果,但在调用 List failedTxnList = getJdbcTemplate().queryForList(query, params); 参数值为[IM1691,VSIB01,2017年1月4日,2017年4月25日]。请帮我找到这里的问题 select a.echeque_no,a.oid,a.echeque_date,d.name im_name,c.name vendor_name,a.corp_ref_no,b.hu

下面的查询在sql Developer中执行时返回单个结果,但在调用

List failedTxnList =  getJdbcTemplate().queryForList(query, params);
参数值为[IM1691,VSIB01,2017年1月4日,2017年4月25日]。请帮我找到这里的问题

select a.echeque_no,a.oid,a.echeque_date,d.name im_name,c.name vendor_name,a.corp_ref_no,b.hundi_date,a.echeque_amount,b.reversal_date, 
a.status_description 
from sbicorp_echeque_master a, sbi_gvf_vendor_txn_history b,sbi_gvf_vendor_master c, sbi_gvf_im_master d 
where a.debit_status = 'ERR.' 
  and LTRIM(RTRIM(a.corporate_id))= 'IM1691' 
  and LTRIM(RTRIM(a.businessline_id)) = 'VSIB01'  
  and trunc(a.echeque_date) BETWEEN TO_DATE ('1/4/2017', 'dd/mm/yyyy') AND TO_DATE ('25/4/2017', 'dd/mm/yyyy') 
  and a.corporate_id=d.im_code and a.businessline_id = c.vendor_code
  and b.txn_type= 'Original Debit' 
  and a.echeque_no = b.reference_no 
  and substr(a.echeque_no,0,2) in ('CE','CR','CN','CZ') 
order by echeque_date desc -- CE01573281

我唯一能看到的是

trunc(a.echeque_date) BETWEEN TO_DATE ('1/4/2017', 'dd/mm/yyyy') AND TO_DATE ('25/4/2017', 'dd/mm/yyyy') 
尝试更改日期字符串以反映所需的格式

TO_DATE ('01/04/2017', 'dd/mm/yyyy') AND TO_DATE ('25/04/2017', 'dd/mm/yyyy') 

获取的列表必须是某种类型,并且必须实现rowMapper。行映射器告诉spring哪个列映射到哪个对象

下面提到一个例子。 圆形模型类:字段是数据库中的列

public class Circle {

    private int id;

    private String name;

    public int getId() {
        return id;
    }
    public void setId(int id) {
        this.id = id;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }

    public Circle(String name) {
        super();
        this.name = name;
    }
    public Circle(int id, String name) {
        super();
        this.id = id;
        this.name = name;
    }
}
为spring定义行映射器,以将数据库列映射到圆对象

public static final class CircleMapper implements RowMapper<Circle> {
        public Circle mapRow(ResultSet resultSet, int arg1) throws SQLException {
            return new Circle(resultSet.getInt("id"),resultSet.getString("name"));  

        }   
    }
对于您的情况,创建一个带有数据库列的模型类。
创建映射器类,然后执行。

这是我查询的结果:抱歉,无法发布结果,但结果有10列和一行ECHEQUE\u NO OID ECHEQUE\u DATE IM\u NAME VENDOR\u NAME CORP\u REF\u NO HUNDI\u DATE ECHEQUE\u DATE金额冲销\u DATE STATUS\u DESCRIPTIONCE01573281 5605816732 02-APR-17 sibinlafim VENSIB 011234566 02-OCT-16 1300 03-OCT-16(空)上面是查询结果,最后一列的值为null会导致任何问题。
Circle circle = jdbcTemplate.queryForObject("SELECT * from circle where id = ?", new Object [] {id}, new CircleMapper());