una transaction tabla studio sqlitedatabase query mostrar datos android sqlite

android - transaction - SQLiteQueryBuilder.query() vs SQLiteDatabase.query()



mostrar datos de una tabla sqlite android (2)

El método principal es SQLiteDatabase#rawQuery() . Tanto SQLiteDatabase#query() como SQLiteQueryBuilder son solo ayudantes para componer el SQL.

La SQLiteDatabase#query() solo puede componer consultas simples desde una tabla. El SQLiteQueryBuilder puede crear uniones, uniones y SQLiteQueryBuilder . Como SQLiteQueryBuilder es un objeto adicional, solo lo construirías si lo necesitas.

Personalmente creo que cualquier SQL no trivial es más fácil de leer como SQL que como piezas compuestas con helper como este, así que usaría rawQuery sobre SQLiteQueryBuilder , pero eso es una cuestión de gusto y qué tan bien conoces SQL. El SQLiteQueryBuilder también puede ser útil si tiene algunas subconsultas comunes que desea componer juntas de diferentes maneras.

De hecho, preferiría (uso sqlite principalmente usando su API C) para usar declaraciones preparadas, porque la compilación de SQL es lenta en comparación con su ejecución, pero no veo esa opción en la interfaz de Java.

¿Cuál es la diferencia entre estos dos enfoques? Para mí, parece que el único beneficio de SQLiteDatabase es su capacidad para trabajar con diferentes bases de datos. ¿Estoy en lo cierto?


SQLiteQueryBuilder es útil si quieres hacer combinaciones en múltiples tablas. Tiene varios métodos de conveniencia para eso, si ve el código fuente en GrepCode: SQLiteQueryBuilder

De lo contrario, no puedo pensar en una razón sólida para usar SQLiteQueryBuilder sobre otros enfoques para consultar la base de datos.