SQLiteQueryBuilder.query () vs SQLiteDatabase.query ()
¿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 bien?
- ¿Puedo bloquear una tabla SQLite para el subproceso actual?
- Cursor de cierre en la base de datos SQLite explícitamente, necesarios o no necesarios?
- IllegalArgumentException: el valor de enlace en el índice 1 es nulo
- ¿Cómo puedo reiniciar la ID de incremento automático desde 1 en una base de datos SQLite de Android
- Aplicación detenida en Android / SQLITE ERROR /
- Java.lang.IllegalStateException: No se pudo leer la fila 0, col 0 de CursorWindow
- ActiveAndroid Excepción SQLite 'No such table'
- Cómo utilizar la base de datos SQLite precargada en Android de Activos
- Android.database.sqlite.SQLiteException: cerca de "ce": error de sintaxis (código 1):, mientras compila: INSERT INTO
- Cómo crear carpeta privada en sdcard
- SQLite.SQLiteException lanzado en Xamarin.Android al intentar crear una tabla
- SQLite de SQL INSERT o REPLACE
- Consulta SQLite muy lenta en Android
2 Solutions collect form web for “SQLiteQueryBuilder.query () vs SQLiteDatabase.query ()”
El método principal es SQLiteDatabase#rawQuery()
. SQLiteDatabase#query()
y SQLiteQueryBuilder
son sólo ayudantes para componer el SQL.
SQLiteDatabase#query()
sólo puede componer consultas simples de una tabla. El SQLiteQueryBuilder
puede crear uniones, uniones y tal. Puesto que SQLiteQueryBuilder
es un objeto extra, 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 rawQuery
sobre SQLiteQueryBuilder
, pero eso es una cuestión de gusto y lo bien que sabes SQL. El SQLiteQueryBuilder
también puede ser útil si tiene algunas subconsultas comunes que desea componer de manera diferente.
De hecho, yo preferiría (uso sqlite principalmente usando su API C) para usar sentencias 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.
SQLiteQueryBuilder es útil si desea realizar combinaciones en varias 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 utilizar SQLiteQueryBuilder sobre otros enfoques para consultar la base de datos.