我正在尝试在程序中使用WHERE LIKE命令。
我的代码
String searchCriteria = searchTextField.getText();
String searchCriteria1 ="'"+"%" + searchCriteria + "%"+"'";\
String query = "select ID,Priority,recipient,Sender,Label,Subject from Messages where Message like = '" + searchCriteria1 + "'";
PreparedStatement pst = connection.prepareStatement(query);
ResultSet rs = pst.executeQuery();
table.setModel(DbUtils.resultSetToTableModel(rs));
代码说明
1.此代码是什么来获取用户的输入。
2.创建一个包含搜索条件和"%"的字符串变量。条件的任何一方。
3.最后几行执行SQL查询。
我目前收到错误java.sql.SQLSyntaxErrorException: Syntax error: Encountered "=" at line 1, column 92.
,并且不确定我的陈述是否有错。
它最有可能是非常愚蠢和小的东西,我希望你能帮忙。
谢谢
答案 0 :(得分:0)
好像你在搜索条件中有两次单引号。
但是在这种情况下你需要使用带有绑定参数的预准备语句。
答案 1 :(得分:0)
您应该像这样使用PreparedStatement:
String searchCriteria = searchTextField.getText();
String query = "select ID,Priority,recipient,Sender,Label,Subject from Messages where Message like ?";
PreparedStatement pst = connection.prepareStatement(query);
pst.setString(1, "%" + searchCriteria + "%");
ResultSet rs = pst.executeQuery();
答案 2 :(得分:0)
您可以将其放在查询本身并删除modulus(%)
符号,而不是将equal(=)
放入变量中。见下文:
String searchCriteria1 =" + searchCriteria + ";
String query = "SELECT ID,Priority,recipient,Sender,Label,Subject FROM Messages WHERE Message LIKE '%" + searchCriteria1 + "%'";