2011-12-08 17 views
12

¿Hay alguna ventaja en el uso de rawQuery sobre Query Builder (o viceversa)?rawQuery vs. database.query

¿El generador de consultas, por ejemplo, protege nuevamente los ataques de inyección SQL (aunque no es un gran problema como con los sitios web, SQL Injection + un proveedor de contenido podría ser un problema)? o es uno más rápido que el otro?

Estoy bastante contento con SQL (suficiente para lo que necesito hacer de todos modos) y por lo tanto tiendo a ir por rawQuery (puedo leer el código fuente más fácilmente), pero me pregunto si me falta algo que podría ser útil.

Respuesta

8

Definitivamente es preferible generar una consulta a través de los métodos provistos. No solo lo protege de las inyecciones de SQL, sino que también crea la consulta para usted, por lo que puede evitar tener un montón de concatenaciones de cadenas que harán que la cadena de consulta sea menos legible y más propensa a errores. En cuanto a rendimiento, no creo que haga mucha diferencia.

+0

Por métodos proporcionados, ¿quiere decir Query Builder? – Mirko

3

La legibilidad es una ventaja de rawQuery. Al menos para mi.

Como sabe, de acuerdo con el principio de Pareto, el desarrollador pasa el 80% de su tiempo leyendo el código. Por lo tanto, la legibilidad es un argumento muy fuerte.

Aunque QueryBuilder también proporciona la forma de usar marcadores de posición (proteger contra las inyecciones de SQL).

Espero que ayude.

Cuestiones relacionadas