sql >> Database teknologi >  >> RDS >> Mysql

Skal jeg bruge PreparedStatements til alle mine databaseindsættelser i Java?

Ja, brug forberedte udsagn til alt.

  1. De analyseres én gang.

  2. De er immune over for SQL-injektionsangreb.

  3. De er et bedre design, fordi du skal tænke på din SQL og hvordan den bruges.

Hvis du tror, ​​de kun er brugt én gang, ser du ikke på det store billede. En dag vil dine data eller din applikation ændre sig.

Rediger.

Hvorfor får forberedte udsagn dig til at tænke over din SQL?

  • Når du samler en streng (eller blot udfører en bogstavelig tekstblok), opretter du ikke en ny PreparedStatement objekt. Du udfører bare SQL -- det kan gøres meget afslappet.

  • Når du skal oprette (og gemme) en PreparedStatement , du skal tænke lidt mere over indkapsling, ansvarsfordeling. Forberedelsen af ​​en sætning er en tilstandsfuld hændelse forud for enhver SQL-behandling.

Ekstraarbejdet er lille, men ikke ubetydeligt. Det er det, der får folk til at begynde at tænke på ORM og et datacachelag, og sådan noget for at optimere deres databaseadgang.

Med Prepared statements er databaseadgang mindre tilfældig, mere tilsigtet.



  1. Hvordan opretter jeg et DESC-indeks i MySQL?

  2. Ved brug af ini_set('max_execution_time', 0);

  3. Mysql Inner join med OR-tilstand?

  4. Hvorfor kan der kun være én TIMESTAMP-kolonne med CURRENT_TIMESTAMP i DEFAULT-sætning?