Android Aile de mucchin | liés au stockage



Record Recherche poule de "SQLite" Une façon de sauvegarder les données de Apps Android


Utilisation de la base de données "SQLite" d'Android?

Ce sera la suite des articles suivants.
Poule SQLiteOpenHelper utilisation de "SQLite" l'un des moyens de stockage de données application Android
Modifier, mettre à jour et supprimer des lignes supplémentaires de la façon d'utiliser le "SQLite" Une façon de sauvegarder les données de Apps Android

Jusqu'à présent, nous avons ainsi qu'une description de la base de données est ouverte pour mise à jour et supprimer des enregistrements sont ajoutés.
Cette fois, nous allons décrire l'énoncé de recherche, sélectionnez, le registre visé à l'SQL.
Ne peut pas dire inconditionnellement, je pense que sur l'accord avec la base de données, il ya beaucoup de scènes à mettre en œuvre la plupart du code, et je ne cochez pas cette.


L'exemple de code montre de ce fait: « Hen SQLiteOpenHelper utilisation de SQLite "Une façon de sauvegarder les données d'applications Android" vous aurez postés à l'exemple de code en ce qu'il crée une instance de type déjà SQLiteDatabase.
Les noms de variables et sdb.
En outre, la définition de la table, dans le "bookmarklist" le nom de table et la colonne 2 de ce signet colonne et la rangée _id existe.
※ Pour la colonne _id, l'article "Un autre point à noter lors de l'utilisation de SQLite pour créer les tables dans l'application Android s'il vous plaît se référer à la ".


Après une recherche dans les dossiers, les résultats de recherche, il sera retourné comme une instance appelée curseur.
Comment obtenir ce curseur, par exemple, car il ya deux grands, je vais vous montrer comment cela d'abord.

Utilisation de la () SQLiteDatabase.query

La première, vous montre comment utiliser () SQLiteDatabase.query première méthode.


final String [] colonnes = new String [] {"_id", "bookmark"};
Chaîne où = "bookmark comme?";
Param String = "%% android";
Curseur c =
sdb.query ("bookmarklist", colonnes, où, new String [] {} param,
null, null, "_id desc", "10");


Le premier argument () est une méthode de SQLiteDatabase.query nom de la table.
Le second argument spécifie le nom de la colonne à récupérer (les noms de colonnes, les noms de champs) un tableau de.
Enregistrez de préciser les critères pour le troisième argument, le quatrième argument doit être obtenu.
Cette fois, nous avons à condition que, une chaîne qui contient la phrase, "androïde" à la chaîne de signet.
Le cinquième argument spécifie le groupe de l'étude article par.
Le sixième argument spécifie la clause HAVING.
Le septième argument spécifie l'ordre clause par.
Le huitième argument, vous spécifiez la limite clause (nombre maximum d'enregistrements à récupérer).
Si vous ne voulez pas utiliser, spécifiez une valeur nulle.
Et d'exprimer cela dans le traitement des instructions SQL, se fera comme suit.


sélectionnez _id, signet
à partir bookmarklist
où signet like '%% android'
commande par _id desc
10 Limite


Comment faire fonctionner les objets sont décrits ci-dessous du curseur.

Utilisation de la () SQLiteDatabase.rawQuery

La section suivante décrit comment utiliser le rawQuery (méthode) Donc.
méthode rawQuery () est, littéralement, utilisez la requête brute.


Chaîne sqlstr = "select _id, bookmark" +
"De bookmarklist" +
«Où signet like '% android%'" +
"Trier par _id desc" +
"Limite de 10";
Curseur c = sdb.rawQuery (sqlstr);


() L'argument de la méthode est une SQLiteDatabase.rawQuery instruction SQL.
Personnellement, je pense, mais facile à utiliser que la méthode query () de ce qui précède, si.
méthode query (), la moyenne, il était bon si vous donnez les paramètres de ce dont les arguments? Je ne semble pas être et ne devrait pas examiner et la méthode Ichiichi () est rawQuery clair.
En outre, comme l'utilisation de la jointure externe gauche et jointure interne, lorsque SQL était comme pour joindre des tables multiples, vous serez mieux de () rawQuery cela.

Il peut être l'amour l'amour, SQL de degré sont utilisés dans Android app ne semble pas si difficile, j'ai trouvé le () rawQuery pouvez exécuter SQL brut, et si il pas la lisibilité agréable.
Personnellement, je, c'est la fin.

Par ailleurs, le () est une seule déclaration de sélectionner rawQuery.
insérer, mettre à jour, suppression, etc, utilisez la execSQL (méthode).
Pour plus d'informations, s'il vous plaît voir ci-dessous.
Modifier, mettre à jour et supprimer des lignes supplémentaires de la façon d'utiliser le "SQLite" Une façon de sauvegarder les données de Apps Android




Alors, regardons l'utilisation de base de l'instance du curseur.

Utilisation de l'instance du curseur

Je pense que fondamentalement, et que l'utilisation sera, de faire quelque chose du début à la fin dans une boucle en tournant les enregistrements extraits.
S'il vous plaît voir l'exemple de code comme dans l'exemple ci-dessous.


/ / Execute () rawQuery ou () requête
Facultatif - Curseur c =;

si (c.moveToFirst ()) {
do {
à long id = c.getLong (c.getColumnIndex ("_id"));
Chaîne signet = c.getString (c.getColumnIndex ("bookmark"));
System.out.println (id + ":" + signet);
Alors que} (c.moveToNext ());
}


Mais ce n'est que la sortie standard tous les enregistrements obtenus tout simplement, regardons d'en haut.
Tout d'abord, dans la première phrase si elle a été run () du curseur. MoveToFirst.
Cela signifie que, déplacez le curseur au début pour les résultats obtenus.
Vrai sera retourné en cas de succès.
Le traitement subséquent est que, pour exécuter () Après le succès de cette MoveToFirst.
Par ailleurs, si le nombre d'enregistrements récupérés était de 0, () la valeur de retour sera MoveToFirst fausse.

Ensuite, il est devenu un jugement après la boucle.
Implication est le curseur. MoveToNext () est appelée, déplacer le curseur à l'enregistrement suivant.
La valeur de retour () retourne un mouvement vrai du curseur si il ya un dossier de cette MoveToNext prochaine.
Retourne false si il n'y a pas enregistrement suivant.
Soit dit en passant, et que, après le jugement est pour le traitement du dossier toute première fois.

Traitement pour extraire le contenu des registres, en fonction du type de chaque colonne, l'utilisation, etc () getInt), getString (), getLong (.
L'argument est un index dans la colonne, que ce soit dans la deuxième colonne En bref quoi? Est un nombre.
Ce, avec le nom du nom de la colonne, vous pouvez obtenir dans () getColumnIndex.

Rond-point est une spécification · indescriptible.
N'a pas me prendre comme une surcharge, même si vous spécifiez le nom de colonne dans l'argument, pourquoi? Je veux juste dire.
Bien sûr, si vous connaissez l'index, mais aussi bon à l'écriture, sans espaces, sans l'aide de la méthode fonctionne correctement même si je change la définition de la table au milieu, ils feraient mieux d'être mis en œuvre dès cette époque Je pense que si elle n'est pas.


Je pense que dans un tel comme une servlet ou JSP, et vous pouvez comprendre sans difficulté si vous avez une expérience dans le système en utilisant la base de données.
Cependant, il est je crois comprendre que l'. Intégré mobile, et jusqu'à présent je n'ai pas abordé avec la base de données ou, ce qui était généralement compris

2 3 4 5 ... Last » Page 8 sur un deux trois quatre cinq ... »Dernière