Đặ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