我在用PreparedStatement写参数查询时遇到这个问题PreparedStatement ps=conn.prepareStatement("select * from tabA "+
"where title like '%?%'");
ps.setString(0,"sth");意思很简单,我希望ps.setString(0,"sth");能替换掉sql语句中的?号,而实际上无法做到请问要如何才能实现这功能,而不用字符串拼接呢?
"where title like '%?%'");
ps.setString(0,"sth");意思很简单,我希望ps.setString(0,"sth");能替换掉sql语句中的?号,而实际上无法做到请问要如何才能实现这功能,而不用字符串拼接呢?
PreparedStatement ps=conn.prepareStatement("select * from tabA "+
"where title like ?");
ps.setString(0,"%"+sth+"%");//sth 你要传入的变量
只不过是把字符拼接挪到了ps.setString()里
我也被这个问题困扰过
ps.setString(1,"sth")
想想看,如果SQL把引号中的问号当参数了,而实际中确实需要传入一个有问号的字符串怎么办?
============================\\?