Mysql
 sql >> база данни >  >> RDS >> Mysql

Трябва ли да използвам PreparedStatements за всички мои вмъквания в база данни в Java?

Да, използвайте подготвени изявления за всичко.

  1. Те се анализират веднъж.

  2. Те са имунизирани срещу атаки с инжектиране на SQL.

  3. Те са по-добър дизайн, защото трябва да помислите за вашия SQL и как се използва.

Ако смятате, че се използват само веднъж, не гледате голямата картина. Някой ден вашите данни или приложението ви ще се променят.

Редактиране.

Защо подготвените изявления ви карат да мислите за вашия SQL?

  • Когато сглобявате низ (или просто изпълнявате буквален блок от текст), вие не създавате нов PreparedStatement обект. Вие просто изпълнявате SQL - това може да се направи много небрежно.

  • Когато трябва да създадете (и запишете) PreparedStatement , трябва да помислите малко повече за капсулирането, разпределението на отговорността. Подготовката на изявление е събитие за състояние преди извършване на каквато и да е SQL обработка.

Допълнителната работа е малка, но не и незначителна. Това кара хората да започнат да мислят за ORM и слой за кеширане на данни и подобни неща, за да оптимизират достъпа си до базата данни.

С Prepared оператори достъпът до базата данни е по-малко случаен, по-преднамерен.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL при каскада за изтриване. Пример за тест

  2. Използване на Like в MySQL за операции за търсене с помощта на шаблон

  3. MySQL Създаване на таблици с външни ключове, даващи errno:150

  4. Преобразуване на Python DateTime низ в цели милисекунди

  5. Mysql :изхвърля база данни заедно с данните