sql >> Database >  >> RDS >> Mysql

Moet ik PreparedStatements gebruiken voor al mijn database-inserts in Java?

Ja, gebruik voor alles voorbereide verklaringen.

  1. Ze worden één keer geparseerd.

  2. Ze zijn immuun voor SQL-injectieaanvallen.

  3. Ze zijn een beter ontwerp omdat je moet nadenken over je SQL en hoe deze wordt gebruikt.

Als je denkt dat ze maar één keer worden gebruikt, kijk je niet naar het grote geheel. Op een dag zullen uw gegevens of uw aanvraag veranderen.

Bewerken.

Waarom doen voorbereide statements je nadenken over je SQL?

  • Als je een string samenstelt (of gewoon een letterlijk tekstblok uitvoert), maak je geen nieuwe PreparedStatement voorwerp. Je voert gewoon SQL uit -- het kan heel nonchalant worden gedaan.

  • Wanneer u een PreparedStatement moet maken (en opslaan) , moet je net iets meer nadenken over inkapseling, toewijzing van verantwoordelijkheid. De voorbereiding van een instructie is een stateful-gebeurtenis voorafgaand aan het uitvoeren van SQL-verwerking.

Het extra werk is klein, maar niet onbelangrijk. Het is wat ervoor zorgt dat mensen gaan nadenken over ORM en een gegevenscachelaag, en dat soort dingen om hun databasetoegang te optimaliseren.

Met voorbereide verklaringen is databasetoegang minder casual, meer opzettelijk.



  1. MySQL - Kan de NULL-waarde niet in de kolom invoegen, maar ik heb een standaardwaarde opgegeven?

  2. PL/pgSQL-kolomnaam hetzelfde als variabele

  3. Van rol wisselen na verbinding met database

  4. Meerdere invoegen SQL-orakel