日期:2014-05-20  浏览次数:20765 次

Ibatis 查询语句出错,看了半天没看出错误。。。。。
public class PuterBoot 
{
  private String puterId;
private String goodsId;
private int optId;
/**
* @return the puterId
*/
public String getPuterId() {
return puterId;
}
/**
* @param puterId the puterId to set
*/
public void setPuterId(String puterId) {
this.puterId = puterId;
}
/**
* @return the goodsId
*/
public String getGoodsId() {
return goodsId;
}


public class PuterBootDAO

  public List<?> getGoodsIdArFlagCount(PuterBoot put)
{
System.out.println("optIdMM"+put.getOptId());
System.out.println("puterIdMM"+put.getPuterId());
System.out.println("devIdMM"+put.getDevId());
return getBackOfficeSqlMapClientTemplate1().queryForList("PuterBoot.selectGoodsIdArFlagCount",put);
}
services中调用这个DAO里方法,能输出各种值
这是XML中写的SQL语句

<sqlMap namespace="PuterBoot">
<select id="selectGoodsIdArFlagCount" parameterClass="com.dingding.vms.backoffice.data.pt.PuterBoot" resultClass="java.util.HashMap">
select goods_id, ar_flag, count
from t_puter_action_detail 
where opt_id = #optId# 
and puter_id = #puterId# 
and dev_id = #devId#
</select>
最后反回的List是空,这代码有什么问题?谢谢了

------解决方案--------------------
不会报错吗 查询语句 count 不是关键字吗
------解决方案--------------------
count是关键字哦。
------解决方案--------------------
sql 返回的是一个hashmap
------解决方案--------------------
先把你的sql在数据库运行一下。
------解决方案--------------------
楼主请尝试在log4j配置文件中加入
log4j.logger.java.sql.Connection = DEBUG
log4j.logger.java.sql.Statement = DEBUG
log4j.logger.java.sql.PreparedStatement = DEBUG
log4j.logger.java.sql.ResultSet = DEBUG 
看看ibatis实际执行的语句是什么,我感觉你的配置文件是正确的