Java 如何使用;“我喜欢什么地方?”;SQL中的命令
我试图在我的程序中使用WHERE-LIKE命令 我的代码Java 如何使用;“我喜欢什么地方?”;SQL中的命令,java,sql,derby,Java,Sql,Derby,我试图在我的程序中使用WHERE-LIKE命令 我的代码 String searchCriteria = searchTextField.getText(); String searchCriteria1 ="'"+"%" + searchCriteria + "%"+"'";\ String query = "select ID,Priority,recipient,Sender,Label,Subject from Messages where Message like = '" + sea
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:语法错误:在第1行第92列遇到“=”。
不确定我的语句有什么问题
它很可能是一些非常愚蠢和小的东西,我希望你能帮助
谢谢你似乎你在搜索条件中有两次单引号
但在这种情况下,您需要使用带绑定参数的prepared语句。您应该像这样使用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();
您可以将其放在查询本身并删除
equal(=)
符号,而不是将模数(%)
放在变量中。见下文:
String searchCriteria1 =" + searchCriteria + ";
String query = "SELECT ID,Priority,recipient,Sender,Label,Subject FROM Messages WHERE Message LIKE '%" + searchCriteria1 + "%'";
是的,这是一件愚蠢的小事。提示:在调用
prepareStatement
之前打印出query
。您有SQL注入漏洞。