Gallina Buscar el uso de registro de "SQLite" Una manera de guardar los datos de aplicaciones de Android
Utilizando la base de datos "SQLite" de Android?
Esta será la secuela de los siguientes artículos.
Gallina SQLiteOpenHelper uso de "SQLite" una de las formas de almacenamiento de datos Android
Editar, actualizar y eliminar líneas adicionales de cómo utilizar el "SQLite" Una manera de guardar los datos de aplicaciones de Android
Hasta el momento, lo que tenemos y una descripción de la base de datos está abierto a la actualización y eliminar registros se suman.
Esta vez, vamos a describir la estrategia de búsqueda, selección, el registro referido en el código SQL.
No puedo decir sin condiciones, creo que en el acuerdo con la base de datos, hay un montón de escenas para poner en práctica la mayor parte del código, y no se selecciona esta.
El código de ejemplo que se muestra de esto es, " Gallina SQLiteOpenHelper uso de SQLite "Una manera de guardar los datos de aplicaciones de Android", que se han fijado en el código de ejemplo que crea una instancia de tipo ya SQLiteDatabase.
Los nombres de variables y sdb.
Además, la definición de la tabla, en el "bookmarklist" el nombre de tabla y la columna 2 de ese marcador de fila y columna _id existe.
※ Para la columna de _id, el artículo "Otro punto a destacar cuando se utiliza SQLite para crear las tablas en la aplicación para Android por favor, consulte la sección ".
Después de una búsqueda de registros, resultados de búsqueda, se devuelve como una instancia denominada cursor.
Cómo llegar cursor este caso, ya que hay dos grandes, te voy a mostrar cómo en primer lugar.
Uso de la () SQLiteDatabase.query
La primera de ellas, se muestra cómo utilizar () SQLiteDatabase.query primer método.
final String [] columnas = new String [] {"_id", "marcador"};
Cadena donde = "marcar como?";
Param = "%% android";
Cursor c =
sdb.query ("bookmarklist", las columnas, donde, new String [] {} param,
null, null, "_id desc", "10");
El primer argumento () es una SQLiteDatabase.query nombre de la tabla.
El segundo argumento especifica el nombre de la columna para obtener (los nombres de columna, nombres de campo) una serie de.
Registre para especificar los criterios para el tercer argumento, el cuarto argumento que se obtengan.
Esta vez, tenemos a la condición de que, una cadena que contiene la frase, "Android" a la cadena de marcador.
El quinto argumento especifica la cláusula GROUP BY.
El sexto argumento especifica la cláusula HAVING.
El séptimo argumento especifica la cláusula ORDER BY.
El argumento octavo, se especifica el límite de la cláusula (número máximo de registros a ser recuperados).
Si no desea utilizar, especifique un valor nulo.
Y para expresar esta en el procesamiento instrucción SQL, será como sigue.
seleccione _id, favorito
de bookmarklist
que marcar como '%% androide "
ordenar por _id desc
límite de 10
Como operar los objetos de cursor se describen a continuación.
Uso de la () SQLiteDatabase.rawQuery
A continuación se describe cómo utilizar el () Así que el método rawQuery.
método de rawQuery () es, literalmente, utilizar la consulta en bruto.
Cadena sqlstr = "select _id, marcador" +
"Desde bookmarklist" +
"¿Dónde marcar como '%% Android'" +
"Ordenar por _id desc" +
"Límite 10";
Cursor c = sdb.rawQuery (sqlstr);
() Es un argumento del método SQLiteDatabase.rawQuery sentencia SQL.
Personalmente, creo, pero es fácil de usar que el método query () de lo anterior, ¿qué pasaría si.
método query (), la media, que era bueno si se le da los parámetros de lo que los argumentos? No parecen ser y no debe examinar y método de Ichiichi () es rawQuery claro.
Además, como el uso de la combinación externa izquierda y la unión interna, cuando SQL era como para unirse a varias tablas, usted estará mejor () rawQuery esto.
Puede ser amor, amor, del grado de SQL se utilizan en Android no parece tan difícil, me pareció que () rawQuery puede ejecutar SQL prima, y si no es lectura agradable.
Personalmente, es el fin.
Por cierto, el () es una declaración sólo selecciona rawQuery.
insertar, actualizar, eliminar, etc, utilice el () execSQL método.
Para obtener más información, por favor ver más abajo.
Editar, actualizar y eliminar líneas adicionales de cómo utilizar el "SQLite" Una manera de guardar los datos de aplicaciones de Android
Por lo tanto, vamos a ver el uso básico de la instancia de Cursor.
Usando el ejemplo del cursor
Creo que, básicamente, y que el uso de voluntad, para hacer algo de principio a fin en un bucle girando los registros recuperados.
Por favor, consulte el código de ejemplo como el siguiente ejemplo.
/ / Ejecutar () rawQuery o () consulta
Opcional - Cursor c =;
if (c.moveToFirst ()) {
do {
id = tiempo c.getLong (c.getColumnIndex ("_id"));
Cadena favorito = c.getString (c.getColumnIndex ("marcador"));
System.out.println (id + ":" + marcador);
Mientras} (c.moveToNext ());
}
Pero eso es sólo la salida estándar todos los registros obtenidos, simplemente, vamos a ver desde arriba.
En primer lugar, en la primera frase, si se ha ejecutado () del cursor. MoveToFirst.
Esto significa que, mover el cursor al comienzo de los resultados obtenidos.
Es cierto será devuelto en caso de éxito.
El proceso subsiguiente es que, para ejecutar () Después del éxito de este MoveToFirst.
Por cierto, si el número de registros recuperados fue de 0, () el valor de retorno será MoveToFirst falsa.
A continuación, se ha convertido en una sentencia después del bucle.
La implicación es el cursor. MoveToNext () es llamada, mueva el cursor al siguiente registro.
El valor de retorno () devuelve un cierto movimiento del cursor si no hay un registro de esta MoveToNext siguiente.
Devuelve false si no hay un próximo disco.
Por cierto, y que después de que el juicio es para el tratamiento de la primera grabación.
El procesamiento para extraer el contenido de los registros, de acuerdo con el tipo de cada columna, uso, etc () getInt), getString (), getLong (.
El argumento es un índice en la columna, ya sea en la segunda columna En pocas palabras, ¿qué? Es un número.
Esto, con el nombre del nombre de la columna, usted puede conseguir en () getColumnIndex.
Rotonda es una especificación · indescriptible.
¿No me llevará como la sobrecarga, incluso si se especifica el nombre de columna en el argumento, ¿por qué? Sólo quiero decir.
Por supuesto, si se conoce el índice, pero también es bueno en la escritura sin espacios sin usar el método funcione correctamente, incluso si cambia la definición de la tabla en el medio, que es mejor que ser implementado a partir de este momento Creo que si no lo es.
Creo que en como un servlet o JSP, y se puede entender sin dificultad si usted tiene experiencia en el sistema utilizando la base de datos.
Sin embargo, tengo entendido que el incorporado. Móvil, y hasta ahora no se refiere a la base de datos o, lo que se entendía en general,











