PreparedStatement里如何使引号里的?成为占位符
类似与 select ... where info like '%?% '
这里的问号是不被看作是占位符的,所以当set的时候会报错
java.sql.SQLException: Parameter index out of range
如何不用sql语句的拼接解决这个问题
谢谢
------解决方案--------------------字符串连接吧
------解决方案--------------------||
------解决方案--------------------学习一下
------解决方案--------------------拼接吧~
------解决方案--------------------程序员群 41801837
------解决方案--------------------PreparedStatement pst = conn.prepareStatement( "select ... where info like ? ");
pst.setString(1, "% "+name+ "% ");
------解决方案--------------------用连接 好了
------解决方案--------------------PreparedStatement pst = conn.prepareStatement( "select ... where info like ? ");
param= param+ "? ";
pst.setString(1, "% "+param+ "% ");
可以在setString之前构造你的字串,然后传入
------解决方案--------------------PreparedStatement pst = conn.prepareStatement( "select ... where info like ? ");
pst.setString(1, "% "+name+ "% ");
上面的这个语句少写了单引号,正确地应当是
PreparedStatement pst = conn.prepareStatement( "select ... where info like ? ");
pst.setString(1, " '% "+name+ "% ' ");
------解决方案--------------------直接在PreparedStatement之前把语句保存到String里不是更方便么