Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> MySQL

Sử dụng dấu nháy đúng cách với LIKE và biến tìm kiếm trong MySQL + Java

Giới thiệu

Khi xây dựng câu lệnh SQL động trong Java với LIKE và biến tìm kiếm, việc nối chuỗi và dấu nháy đơn rất dễ sai. Cú pháp an toàn: \"... LIKE '%\" + keyword + \"%'\".

Ví dụ Java JDBC

String searchKeyWord = "Smith";
String sqlQuery = "SELECT * FROM demo19 WHERE name LIKE '%" + searchKeyWord + "%'";

Code hoàn chỉnh

import java.sql.*;

public class RemoveJavaQueryError {
    public static void main(String[] args) {
        Connection con = null;
        Statement stmt = null;
        try {
            String searchKeyWord = "Smith";
            Class.forName("com.mysql.jdbc.Driver");
            con = DriverManager.getConnection(
                "jdbc:mysql://localhost:3306/sampledatabase", "root", "123456");
            stmt = con.createStatement();
            String sqlQuery = "SELECT * FROM demo19 WHERE name LIKE '%" + searchKeyWord + "%'";
            ResultSet rs = stmt.executeQuery(sqlQuery);
            while (rs.next()) {
                System.out.println(rs.getString("name"));
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

Kết quả:

John Smith
Adam Smith

⚠️ Cảnh báo bảo mật: Cách nối chuỗi này dễ bị SQL Injection. Nên dùng PreparedStatement:

String sql = "SELECT * FROM demo19 WHERE name LIKE ?";
PreparedStatement ps = con.prepareStatement(sql);
ps.setString(1, "%" + searchKeyWord + "%");
ResultSet rs = ps.executeQuery();