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

Devo usare PreparedStatements per tutti i miei inserimenti di database in Java?

Sì, usa le istruzioni preparate per tutto.

  1. Vengono analizzati una volta.

  2. Sono immuni dagli attacchi SQL injection.

  3. Sono un design migliore perché devi pensare al tuo SQL e a come viene utilizzato.

Se pensi che vengano usati solo una volta, non stai guardando il quadro generale. Un giorno i tuoi dati o la tua applicazione cambieranno.

Modifica.

Perché le istruzioni preparate ti fanno pensare al tuo SQL?

  • Quando si assembla una stringa (o si esegue semplicemente un blocco di testo letterale) non si crea un nuovo PreparedStatement oggetto. Stai solo eseguendo SQL -- può essere fatto in modo molto casuale.

  • Quando devi creare (e salvare) un PreparedStatement , devi pensare solo un po' di più all'incapsulamento, all'allocazione delle responsabilità. La preparazione di un'istruzione è un evento con stato prima di eseguire qualsiasi elaborazione SQL.

Il lavoro extra è piccolo, ma non insignificante. È ciò che spinge le persone a pensare all'ORM e a un livello di memorizzazione nella cache dei dati e cose del genere per ottimizzare l'accesso al database.

Con le istruzioni Prepared, l'accesso al database è meno casuale, più intenzionale.