类似与 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里不是更方便么