【发布时间】:2014-09-15 01:49:45
【问题描述】:
我有一个 Java 代码:
String searchPerson = "select * from persons where surname like ? and name like ?";
//connect to DB
PreparedStatement statement = connect.prepareStatement(searchPerson);
statement.setString(1,"%"+ surname + "%");
statement.setString(2, "%" + name + "%");
ResultSet resultPerson = statement.executeQuery(searchPerson);
//..code
然后我有 SQLException:
您的 SQL 语法有错误;查看与您的 MySQL 服务器版本相对应的手册,了解在 '?' 附近使用的正确语法
【问题讨论】:
-
@AdamYost:不,他没有,这就是重点?占位符
-
我设置字符串时出错:
codestatement.setString(1,"%"+ surname + "%"); statement.setString(2, "%" + name + "%");code -
我猜这是mysql错误之一。将您的声明更改为
like '%' || ? || '%'并使用.setString(1, surname)它应该可以工作 -
@mvp 比我有:您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以了解在 '? 附近使用的正确语法。 || '%''
标签: java mysql sql jdbc prepared-statement