在模糊查询语句中,需要用到占位符“?”传递参数时,sql语句中不能有%,如下:
正确写法
//定义sql语句,?表示占位符
String sql = "select * from users where name like ?";
//获取预编译的statement
preparedStatement = connection.prepareStatement(sql);
preparedStatement.setString(1, "%李%");
错误写法:
//定义sql语句,?表示占位符
String sql = "select * from users where name like ‘%?%’";
//获取预编译的statement
preparedStatement = connection.prepareStatement(sql);
preparedStatement.setString(1, "李");