为了账号安全,请及时绑定邮箱和手机立即绑定

jdbc相关问题

        Map<String, Object> param = new HashMap<String, Object>();
        param.put("name", "godname");
        param.put("rela", "like");
        String str = "小美";
        param.put("value", str);

为什么这样写会出现错误???

正在回答

4 回答

if(params!=null&&params.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"));

对'?'位置进行赋值

0 回复 有任何疑惑可以回复我~
#1

静以修身淡以明志 提问者

非常感谢!
2016-03-26 回复 有任何疑惑可以回复我~
ptmt.setString(1, map.get("value"));

这里应该是1哈,刚才回复的代码里是5,那个复制的,忘记改了

0 回复 有任何疑惑可以回复我~

 param.put("name", "godname");
        param.put("rela", "like");
        String str = "小美";
        param.put("value", str);

构造出来的条件是  :godname like 小美    这里小美是字符串,所以要用单引号。

你说param.put("value","'小美'")没错是因为这里面已经用单引号引起来了。去掉一样会报错。

0 回复 有任何疑惑可以回复我~
#1

静以修身淡以明志 提问者

那如果是需要用户输入姓名查询,如何来写代码呢?(如果每次都需要用输入单引号会很麻烦),最近在纠结这个问题,希望可以帮我解决一下,谢谢哈!!!
2016-03-25 回复 有任何疑惑可以回复我~

这个代码我试了,没报错啊。你说的错误是什么内容,方便贴出来么

0 回复 有任何疑惑可以回复我~
#1

静以修身淡以明志 提问者

Exception in thread "main" com.microsoft.sqlserver.jdbc.SQLServerException: 列名 '小美' 无效。 at com.gdin.dao.GoddessDao.query(GoddessDao.java:178) at com.gdin.action.ActionExample.main(ActionExample.java:56) 这是错误!!!
2016-03-25 回复 有任何疑惑可以回复我~
#2

静以修身淡以明志 提问者

如果我这样写param.put("value","'小美'")就没错。
2016-03-25 回复 有任何疑惑可以回复我~
#3

酱油fight 回复 静以修身淡以明志 提问者

String str = "小美"; 改成 String str = "'小美'";就是双引号里的小美再加一个单引号
2016-03-25 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
JDBC之 “ 对岸的女孩看过来”
  • 参与学习       99326    人
  • 解答问题       856    个

一起领略JDBC的奥秘,为进一步学习集成框架打下良好的基础

进入课程

jdbc相关问题

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信