PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

Как да използвате PreparedStatement и търсене без учет на главни и малки букви

Направете familyName или givenName също с малки букви, тъй като вече използвате 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";

Когато използвате PreparedStatement не добавяйте стойности директно във вашия SQL, ако го направите, сте склонни към SQL атака вместо това параметризирайте вашите стойности.

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());

След това задайте стойности, извиквайки подходящи методи setXXX, както е дефинирано тук .

Можете да прочетете урок тук



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да създадете sql скрипт на схема на база данни на postgres?

  2. RoR Група часови зони на Postgresql, като не работи на Heroku

  3. PostgreSQL последователност, която гарантира уникален идентификатор

  4. Как да преброим свързани редове, включително подкатегории?

  5. Postgresql префикс заместващ знак за пълен текст