Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Tôi có nên sử dụng PreparedStatements cho tất cả các chèn cơ sở dữ liệu của mình trong Java không?

Có, hãy sử dụng các câu lệnh đã chuẩn bị sẵn cho mọi thứ.

  1. Chúng được phân tích cú pháp một lần.

  2. Chúng miễn nhiễm với các cuộc tấn công chèn SQL.

  3. Chúng là một thiết kế tốt hơn vì bạn phải nghĩ về SQL của mình và cách nó được sử dụng.

Nếu bạn nghĩ rằng chúng chỉ được sử dụng một lần, bạn không nhìn vào bức tranh toàn cảnh. Một ngày nào đó, dữ liệu của bạn hoặc ứng dụng của bạn sẽ thay đổi.

Chỉnh sửa.

Tại sao các câu lệnh chuẩn bị sẵn khiến bạn nghĩ về SQL của mình?

  • Khi bạn tập hợp một chuỗi (hoặc đơn giản là thực thi một khối văn bản theo nghĩa đen), bạn sẽ không tạo một PreparedStatement mới vật. Bạn chỉ đang thực thi SQL - nó có thể được thực hiện rất tình cờ.

  • Khi bạn phải tạo (và lưu) một PreparedStatement , bạn phải nghĩ thêm một chút về việc đóng gói, phân bổ trách nhiệm. Việc chuẩn bị một câu lệnh là một sự kiện trạng thái trước khi thực hiện bất kỳ quá trình xử lý SQL nào.

Việc làm thêm tuy nhỏ nhưng không đáng kể. Đó là lý do khiến mọi người bắt đầu nghĩ về ORM và lớp bộ nhớ đệm dữ liệu và những thứ tương tự như vậy để tối ưu hóa quyền truy cập cơ sở dữ liệu của họ.

Với câu lệnh Chuẩn bị, việc truy cập cơ sở dữ liệu ít ngẫu nhiên hơn, có chủ đích hơn.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Làm thế nào để mỗi hàng hoạt động trong trình kích hoạt trong mysql?

  2. Cài đặt pdo_mysql trên Amazon EC2 với PHP 5.5

  3. Có cách nào để chỉ cài đặt ứng dụng khách mysql (Linux) không?

  4. Sự cố khi liên kết một mảng đã nổ vào một câu lệnh được chuẩn bị sẵn mysql

  5. bbPress:Cách tìm ánh xạ các tệp đính kèm đến các bài đăng tương ứng của chúng