sql >> Databáze >  >> RDS >> Oracle

Při použití šablony JdbcTemplate je nutné escapovat jednu uvozovku

Použijte PreparedStatement . Tímto způsobem určíte zástupný symbol a ovladač JDBC to provede správně odesláním příkazu do databáze plus parametry jako argumenty.

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

Otazníky výše představují zástupné symboly.

Protože se tyto hodnoty předávají jako parametry, nemáte problémy s citováním a chrání vás to před SQL injekce taky.



  1. Problém s heredoc a PHP

  2. Jak získat aktuální datum a čas v MySQL

  3. Jak se chránit před SQL injection, když je klauzule WHERE sestavována dynamicky z vyhledávacího formuláře?

  4. Existuje nějaká hashovací funkce v PL/SQL?