sql >> Databasteknik >  >> RDS >> Oracle

Undviker ett enstaka citat när du använder JdbcTemplate

Använd PreparedStatement . På så sätt nominerar du en platshållare och JDBC-drivrutinen kommer att utföra detta korrekt genom att skicka satsen till databasen, plus parametrarna som argument.

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

Frågetecknen ovan representerar platshållarna.

Eftersom dessa värden skickas som parametrar har du inga problem med att citera, och det skyddar dig mot SQL injektion också.



  1. Returnera standardresultat för IN-värde oavsett

  2. Konvertera Oracle SQL-fråga till Azure SQL-fråga

  3. Välj endast det sista värdet med hjälp av group by at mysql

  4. Anropa en lagrad funktion (som returnerar en array av en användardefinierad typ) i oracle över en databaslänk