sql语句双参数传递

sql语句双参数传递,第1张

看type表中的字段类型:

如果d_type(或d_order)是字符型(varchar)或日期型(datetime)就要加'',及...d_type='"&request.Form("d_type") &"' and....

如果d_type(或d_order)是数值型(int,float,numeric,decimal)就按你原来的写不需要加''

1、使用Map<String,Object>   jdbcTemplate.queryForMap查询,其返回结果必须有且只有1个map值,否则会抛出异常。若抛出异常,则肯定不会得到返回值。

例如“控制台提示错误Incorrect result size: expected 1, actual 0”。

问题原因参考(1)字符串的Jdbctemplate查询:EmptyResultDataAccessException:结果大小不正确:预期1,实际0网页链接

问题原因参考(2)JdbcTemplate queryForObject结果大小不正确:预期为1,实际为0网页链接

2、推荐使用jdbcTemplate.query或List<Map<String,Object>> jdbcTemplate.queryForList查询。

/**

 * 

* @Title: querySpxxMap_dbBySsflbm 

* @Description: TODO(根据税收分类编码、企业id,联查商品信息表、税收分类编码表的,商品id+商品名称+规格型号+计量单位+税率+税收分类编码) 

* @param ssflbm

* @param qyid

* @return    设定文件 

* @return Map<String,Object>    返回类型 

* @throws

*/ 

public List<Map<String, Object>> querySpxxMap_dbBySsflbm(String ssflbm, String qyid) {

String sql="select spxx.id,spxx.spmc,spxx.ggxh ,spxx.jldw,ss.slv ,ss.hbbm ssflbm "

+ "from t_jc_ssflbm ss "

+ "left join t_qy_spxx  spxx on spxx.ssflbm=ss.hbbm  "

+ "where ss.hbbm=? and spxx.qyid=?"

//queryForList  参数写法1

List<Object> conditionList = new ArrayList<Object>()

conditionList.add(ssflbm)

conditionList.add(qyid)

List<Map<String, Object>> list1=jdbcTemplate.queryForList(sql,conditionList.toArray())

//queryForList  参数写法2

List<Map<String, Object>> list2=jdbcTemplate.queryForList(sql,new Object[] {ssflbm,qyid})

return list1

}


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/6426846.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-03-22
下一篇2023-03-22

发表评论

登录后才能评论

评论列表(0条)

    保存