Mysql
 sql >> Base de données >  >> RDS >> Mysql

Dois-je utiliser PreparedStatements pour toutes mes insertions de base de données en Java ?

Oui, utilisez des déclarations préparées pour tout.

  1. Ils sont analysés une fois.

  2. Ils sont à l'abri des attaques par injection SQL.

  3. Ils sont mieux conçus car vous devez penser à votre SQL et à la manière dont il est utilisé.

Si vous pensez qu'ils ne sont utilisés qu'une seule fois, vous ne regardez pas la situation dans son ensemble. Un jour, vos données ou votre application changeront.

Modifier.

Pourquoi les instructions préparées vous font-elles réfléchir à votre SQL ?

  • Lorsque vous assemblez une chaîne (ou exécutez simplement un bloc littéral de texte), vous ne créez pas un nouveau PreparedStatement objet. Vous exécutez simplement SQL -- cela peut être fait avec beaucoup de désinvolture.

  • Lorsque vous devez créer (et enregistrer) un PreparedStatement , vous devez penser un peu plus à l'encapsulation, à l'attribution des responsabilités. La préparation d'une instruction est un événement avec état avant tout traitement SQL.

Le travail supplémentaire est faible, mais non négligeable. C'est ce qui pousse les gens à commencer à penser à ORM et à une couche de mise en cache des données, et des choses comme ça pour optimiser leur accès à la base de données.

Avec les instructions préparées, l'accès à la base de données est moins occasionnel, plus intentionnel.