Maison >base de données >tutoriel mysql >Comment mettre à jour une ligne spécifique dans une base de données Android SQLite à l'aide de « execSQL() » ou « update() » ?
Modification d'un seul enregistrement dans une base de données Android SQLite
Android propose deux approches principales pour mettre à jour des lignes de base de données spécifiques : execSQL()
et update()
. Le meilleur choix dépend de la complexité de votre opération de mise à jour.
Pour mettre à jour plusieurs champs à l'aide de la méthode update()
, commencez par construire un objet ContentValues
pour contenir les nouvelles valeurs :
<code class="language-java">ContentValues values = new ContentValues(); values.put("Field1", "Bob"); // String value values.put("Field2", 19); // Integer value values.put("Field3", "Male"); // String value</code>
Ensuite, exécutez la mise à jour en utilisant la méthode update()
. Cela nécessite le nom de la table, l'objet ContentValues
et une clause WHERE
pour identifier la ligne cible :
<code class="language-java">myDB.update(TableName, values, "_id = ?", new String[]{id});</code>
Ici, "_id = ?" sert de clause WHERE
, avec id
représentant la clé primaire de la ligne à modifier. Le "?" agit comme un espace réservé pour la valeur id
, empêchant les vulnérabilités d'injection SQL.
Pour des mises à jour SQL plus complexes, execSQL()
fournit un itinéraire direct :
<code class="language-java">myDB.execSQL("UPDATE " + TableName + " SET Field1 = 'Bob', Field2 = 19, Field3 = 'Male' WHERE _id = 1");</code>
Cette approche exécute directement une instruction SQL personnalisée. Cependant, soyez prudent, car elle est plus sensible aux attaques par injection SQL que la méthode update()
. Utilisez execSQL()
uniquement lorsque cela est nécessaire, pour des mises à jour dépassant les capacités de update()
.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!