所以在我的程序中,我有:
private static final String GET_USERS_BY_PARAMS = "select * from user t "
+ "where t.id like %?% "
+ "AND t.name LIKE %?% "
+ "AND t.location LIKE %?% "
+ "AND t.telephone LIKE %?% ";
上面给出的所有参数都作为 varchar 存储在数据库中。
但是,当我运行以下命令时:
statement = connection.prepareStatement(GET_USERS_BY_SEARCH_PARAMS);
statement.setString(1, userID);
statement.setString(2, name);
statement.setString(3, location);
statement.setString(4, telephone());
rs = statement.executeQuery();
我收到一条 SQL 异常,指出存在无效字符。应用程序在 executeQuery 上抛出错误,因此设置参数不是问题。我想知道这是否归结为使用 % 符号,我包括在内,这样您就可以搜索而无需输入确切的用户 ID、名称等。
提前感谢您的帮助!