PostgreSQL
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> PostgreSQL

Cách sử dụng PreparedStatement và tìm kiếm Không phân biệt chữ hoa chữ thường

Đặt familyName hoặc givenName thành chữ thường vì bạn đã sử dụng LOWER DB API

String query ="SELECT agent.familyname, agent.givenname" +
                        " FROM agent" +
                        " WHERE agent.agentid = piececreation.agentid" +
                        " AND (LOWER(familyname) = '"+agent_lastname.toLowerCase()+"' OR LOWER(givenname) = '"+agent_name.toLowerCase()+"') ORDER by familyname";

Khi bạn đang sử dụng PreparedStatement không nối giá trị trực tiếp trong SQL của bạn, nếu bạn làm điều đó, bạn dễ bị Tấn công SQL thay vào đó, tham số hóa các giá trị của bạn.

String query = 
                "SELECT agent.familyname, agent.givenname"
                + " FROM agent"
                + " WHERE agent.agentid = ?"
                + " AND (" 
                + " LOWER(familyname) = ? OR LOWER(givenname) = ?" 
                + ") " 
                + " ORDER by familyname";


        pst.setInt(1, piececreation.agentid);
        pst.setString(2, agent_lastname.toLowerCase());
        pst.setString(3, agent_name.toLowerCase());

Sau đó, đặt các giá trị gọi các phương thức setXXX thích hợp như được xác định tại đây .

Bạn có thể đọc hướng dẫn tại đây



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Tối ưu hóa truy vấn Postgres (buộc quét chỉ mục)

  2. PostgreSQL 9.3:Chia một cột thành nhiều cột

  3. Thông báo từ trình kích hoạt trên bảng sao chép pglogical

  4. Nxlog im_dbi không hoạt động

  5. Chọn từ không có gì trong Oracle mà không tham chiếu đến bảng kép?