LIKE name='%xxx%'是SQL提供的一种模糊查询方式,用%号代替任意字符。
PreparedStatement是Java提供的一种包含预处理的数据库连接查询方式,这种方式很方便,可以通过如下代码做查询:
PreparedStatement pstm = connection.prepareStatement("SELECT * FROM t1 WHERE name=?");
问号就是占位符,接下来只要通过注入方式在?的位置注入想要注入的就行,可以是字符串,也可以是int类型。
注入代码:
这样是不是很方便,免去了 如果name是变量时 的字符串拼接。pstm.setString(1, "abc");
但是当模糊查询与预处理注入方式结合时,正确的使用方式是这样的。
只需要更改注入的东西就可以,第一句生成PreparedStatement对象时的SQL语句不用改,不用在SQL语句里写%。
pstm.setString(1, "%abc%");