2011-12-08 4 views
12

Có lợi thế nào trong việc sử dụng rawQuery trên Trình tạo truy vấn (hoặc ngược lại) không?rawQuery Vs. database.query

Trình tạo truy vấn, ví dụ, bảo vệ một lần nữa các cuộc tấn công SQL Injection (Mặc dù không phải là vấn đề lớn với các trang web, SQL Injection + nhà cung cấp nội dung có thể là một vấn đề)? hoặc nhanh hơn cái kia?

Tôi khá hài lòng với SQL (đủ cho những gì tôi cần làm) và vì vậy tôi có xu hướng đi cho rawQuery (tôi có thể đọc mã nguồn dễ dàng hơn), nhưng tôi chỉ tự hỏi nếu tôi đang thiếu cái gì đó có thể hữu ích.

Trả lời

8

Nó chắc chắn được ưu tiên để tạo truy vấn thông qua các phương pháp được cung cấp. Nó không chỉ bảo vệ bạn khỏi việc tiêm SQL, nó còn xây dựng các truy vấn cho bạn để bạn có thể tránh việc có một chuỗi các chuỗi liên kết sẽ làm cho chuỗi truy vấn trở nên dễ đọc hơn và dễ bị lỗi hơn. Hiệu suất-khôn ngoan Tôi không nghĩ rằng nó làm cho nhiều sự khác biệt.

+0

Bằng phương pháp được cung cấp, bạn có nghĩa là Trình tạo truy vấn? – Mirko

3

Khả năng đọc là một lợi thế của rawQuery. Ít nhất là cho tôi.

Như bạn đã biết, theo nhà phát triển nguyên tắc Pareto chi tiêu 80% thời gian đọc mã. Do đó khả năng đọc là một đối số rất mạnh.

Mặc dù QueryBuilder cũng cung cấp cách sử dụng trình giữ chỗ (bảo vệ khỏi việc tiêm SQL).

Hy vọng điều đó sẽ hữu ích.