Oracle
 sql >> Database >  >> RDS >> Oracle

Escape di una singola virgoletta quando si utilizza JdbcTemplate

Usa PreparedStatement . In questo modo si nomina un segnaposto e il driver JDBC lo eseguirà correttamente inviando al database l'istruzione, più i parametri come argomenti.

    String updateStatement =
    "update " + dbName + ".COFFEES " +
    "set TOTAL = TOTAL + ? " +
    "where COF_NAME = ?";

    PreparedStatement updateTotal = con.prepareStatement(updateStatement);
    updateTotal.setInt(1, e.getValue().intValue());
    updateTotal.setString(2, e.getKey());

I punti interrogativi sopra rappresentano i segnaposto.

Poiché questi valori vengono passati come parametri, non hai problemi con le virgolette e ti protegge da SQL iniezione anche.