НИКОГДА не используйте конкатенацию строк для построения оператора SQL с предоставленными пользователем текстовыми значениями.
Ну, если вы действительно не хотите, чтобы ваш код был восприимчив к SQL-инъекциям атак, позволяя хакеру украсть ваши данные и удалить ваши таблицы.
Вы уже используете 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);
}
}