Map<String, Object> param = new HashMap<String, Object>();
param.put("name", "godname");
param.put("rela", "like");
String str = "小美";
param.put("value", str);
为什么这样写会出现错误???
if(params!=null&¶ms.size()>0){
for (int i = 0; i < params.size(); i++) {
Map<String, Object> map=params.get(i);
sb.append(" and "+map.get("name")+" "+map.get("rela")+" "+?+" ");
}
}
PreparedStatement ptmt=conn.prepareStatement(sb.toString());
ptmt.setString(5, map.get("value"));在之前写map.get("value")的地方,换成'?',然后使用
ptmt.setString(5, map.get("value"));对'?'位置进行赋值
ptmt.setString(1, map.get("value"));这里应该是1哈,刚才回复的代码里是5,那个复制的,忘记改了
param.put("name", "godname");
param.put("rela", "like");
String str = "小美";
param.put("value", str);
构造出来的条件是 :godname like 小美 这里小美是字符串,所以要用单引号。
你说param.put("value","'小美'")没错是因为这里面已经用单引号引起来了。去掉一样会报错。
这个代码我试了,没报错啊。你说的错误是什么内容,方便贴出来么