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