gpt4 book ai didi

java - 我尝试在带有 like 子句的选择查询中使用变量,但收到类似无效标识符的错误

转载 作者:行者123 更新时间:2023-12-01 17:51:00 24 4
gpt4 key购买 nike

我尝试在带有 like 子句的选择查询中使用变量,但收到诸如无效标识符之类的错误。这是我的方法...

private void searchBooks(){

try{
String SEARCHFORTHIS=Find_Book_Field.getText();
pst=conn.prepareStatement("SELECT * FROM BOOK WHERE NAME LIKE '%'+ SEARCHFORTHIS +'%'");
rs=pst.executeQuery();
Show_All_Books.setModel(DbUtils.resultSetToTableModel(rs));
}catch(SQLException e){
e.printStackTrace();
JOptionPane.showMessageDialog(null,e);
}
}

最佳答案

切勿使用字符串连接来构建具有用户提供的文本值的 SQL 语句。

好吧,除非您确实希望您的代码容易受到 SQL Injection 的影响。攻击,允许黑客窃取您的数据并删除您的表。

您已经在使用 PreparedStatement,所以请正确使用它。

您还应该使用 try-with-resources 来进行正确的资源管理。

private void searchBooks() {
String SEARCHFORTHIS = Find_Book_Field.getText();
String sql = "SELECT * FROM BOOK WHERE NAME LIKE ?";
try (PreparedStatement stmt = conn.prepareStatement(sql)) {
stmt.setString(1, "%" + SEARCHFORTHIS + "%");
try (ResultSet rs = stmt.executeQuery()) {
Show_All_Books.setModel(DbUtils.resultSetToTableModel(rs));
}
} catch (SQLException e){
e.printStackTrace();
JOptionPane.showMessageDialog(null,e);
}
}

关于java - 我尝试在带有 like 子句的选择查询中使用变量,但收到类似无效标识符的错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50112356/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com