sql >> Database >  >> RDS >> PostgreSQL

PreparedStatement en hoofdletterongevoelig zoeken gebruiken

Maak familyName of GivenName ook in kleine letters, aangezien u al LOWER DB API gebruikt

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";

Wanneer u PreparedStatement gebruikt voeg geen waarden rechtstreeks toe aan uw SQL, als u dat doet, bent u vatbaar voor SQL-aanval parametriseer in plaats daarvan uw waarden.

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

Stel vervolgens waarden in die de juiste setXXX-methoden aanroepen zoals gedefinieerd hier .

Je kunt de tutorial hier lezen



  1. START TRANSACTIE binnen BEGIN ... END-context of buiten en LOOP-syntaxis

  2. Optimaliseren van code in PL/SQL. Het naar behoren maken. Code is actief maar niet correct

  3. datagrip Kan geen wijzigingen toepassen Deze tabel is alleen-lezen. Wijzigingen in de celeditor kunnen niet worden toegepast

  4. Stel een standaard retourwaarde in voor een Postgres-functie