Spring jdbc-getJdbcTemplate().queryForList
下面的查询在sql Developer中执行时返回单个结果,但在调用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
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());