PreparedStatement里如何使引号里的?成为占位符

aniwn 2007-06-21 06:26:45
类似与 select ... where info like '%?%'
这里的问号是不被看作是占位符的,所以当set的时候会报错java.sql.SQLException: Parameter index out of range

如何不用sql语句的拼接解决这个问题
谢谢
...全文
825 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
aniwn 2007-06-26
  • 打赏
  • 举报
回复
大家写db的时候要注意注入攻击啊
joejoe1991 2007-06-22
  • 打赏
  • 举报
回复
直接在PreparedStatement之前把语句保存到String里不是更方便么
tdy1234 2007-06-22
  • 打赏
  • 举报
回复
用连接 好了
mx1029 2007-06-22
  • 打赏
  • 举报
回复
PreparedStatement pst = conn.prepareStatement("select ... where info like ?");

pst.setString(1, "%"+name+"%");
huoyin 2007-06-22
  • 打赏
  • 举报
回复
PreparedStatement pst = conn.prepareStatement("select ... where info like ?");

pst.setString(1, "%"+name+"%");

上面的这个语句少写了单引号,正确地应当是

PreparedStatement pst = conn.prepareStatement("select ... where info like ?");

pst.setString(1, "'%"+name+"%'");
fengmingjie 2007-06-22
  • 打赏
  • 举报
回复
PreparedStatement pst = conn.prepareStatement("select ... where info like ?");
param= param+"?";
pst.setString(1, "%"+param+"%");

可以在setString之前构造你的字串,然后传入
yingzi107 2007-06-22
  • 打赏
  • 举报
回复
程序员群 41801837
CrazyGou 2007-06-22
  • 打赏
  • 举报
回复
拼接吧~
joejoe1991 2007-06-21
  • 打赏
  • 举报
回复
学习一下
士元 2007-06-21
  • 打赏
  • 举报
回复
||
believefym 2007-06-21
  • 打赏
  • 举报
回复
字符串连接吧

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧