静以修身淡以明志
2016-03-25 01:01
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","'小美'")没错是因为这里面已经用单引号引起来了。去掉一样会报错。
这个代码我试了,没报错啊。你说的错误是什么内容,方便贴出来么
JDBC之 “ 对岸的女孩看过来”
99327 学习 · 856 问题
相似问题