Uporaba objektov PreparedStatement

## Objekti PreparedStatement

Te objekte lahko uporabimo namesto objektov Statement. Objekte PreparedStatement imajo naslednje prednosti:

1. Pri ponavljanih povpraševanjih (na primer v zankah) je to bolj učinkovito, ker so stavki SQL prevedeni le enkrat
2. Mehanizem vključevanja vrednosti parametrov poskrbi za vse posebne znake

Objekt PreparedStatement vzpostavi tekst SQL, koga tvorimo. Parametre navedemo z znaki '?' . Po tvorbi lahko te parametre počistimo z metodo clearParameters in nastavimo z metodami setInt, setString, itd. (pozicije parametra začnemjo z 1) . Objekt nato izvedemo z metodami execute, executeUpdate ali executeQuery kot pri objektu Statement , povrnjene pa dobimo enake tipe, vendar brez argumentov (saj smo stavke SQL že nastavili pri tvorbi objekta):

    PreparedStatement pstmt = con.prepareStatement(
                                  "INSERT INTO Customers " +
                                  "(CustomerFirstName, CustomerLastName, CustomerAddress) "+
                                  "VALUES (?, ?, ?)") ;
    pstmt.clearParameters() ;
    pstmt.setString(1, "Joan") ;
    pstmt.setString(2, "D'Arc") ;
    pstmt.setString(3, "Tower of London") ;
    count = pstmt.executeUpdate() ;
    System.out.println ("\nInserted " + count + " record successfully\n") ;
    pstmt.clearParameters() ;
    pstmt.setString(1, "John") ;
    pstmt.setString(2, "D'Orc") ;
    pstmt.setString(3, "Houses of Parliament, London") ;
    count = pstmt.executeUpdate() ;
    System.out.println ("\nInserted " + count + " record successfully\n") ;