Guide de développement

Local Navigation

Utilisation de bases de données SQLite

Une fois que vous avez créé une base de données SQLite, vous pouvez utiliser des instructions SQL pour effectuer des actions telles qu'ajouter ou récupérer des données et modifier la base de données.

La liste des instructions SQL prises en charge ainsi que leur syntaxe est disponible à l'adresse www.SQLite.org. L'API de base de données ne prend pas en charge FTS2 et RTREE.

Il existe deux façons d'exécuter des instructions : vous pouvez créer un objet Statement ou utiliser Database.executeStatement.

Exécution d'instructions avec un objet Statement

Les étapes suivantes indiquent comment exécuter des instructions avec un objet Statement :

  1. Créez un objet Statement à l'aide de la méthode Database.createStatement.
  2. Préparez l'instruction à exécuter en appelant la méthode Statement.prepare.
  3. Liez des paramètres dans l'instruction. Il s'agit d'une action facultative, mais qui améliore les performances lorsque vous exécutez l'instruction plusieurs fois.
  4. Exécutez l'instruction.
    • Si l'instruction risque de renvoyer des résultats (comme une instruction SELECT), exécutez-la en appelant Statement.getCursor, qui renvoie un objet Cursor.

    • Si l'instruction ne renvoie pas de jeu de résultats, exécutez-la en appelant l'une des méthodes suivantes :
      • Statement.executeUpdate : utilisez-la lors de la mise à jour des données (avec une instruction UPDATE) et de l'exécution de l'instruction plusieurs fois avec des paramètres de liaison.
      • Statement.executeInsert : utilisez-la lors de l'insertion de données (avec une instruction INSERT) et de l'exécution de l'instruction plusieurs fois avec des paramètres de liaison.
      • Statement.Statexecuteement : utilisez-la lorsque vous souhaitez utiliser des paramètres de liaison.
  5. Si l'instruction renvoie un ensemble de résultats, récupérez-le en itérant sur la classe Cursor renvoyée ligne par ligne. Pour ce faire, utilisez l'interface Cursor, qui fonctionne en toutes circonstances mais vers l'avant uniquement. Pour les déplacements bidirectionnels, mais uniquement pour les petits ensembles de résultats, utilisez la classe BufferedCursor.
Remarque : Vous devez fermer explicitement les instructions pour libérer des ressources.

L'exemple suivant met à jour des lignes :

Statement st = d.createStatement("UPDATE Account set Balance = ? WHERE AcctNo > ?"); 
try 
{ 
    st.prepare(); 
    Object[] bindParams = {new Integer (2000), new Integer (100)};
    st.executeUpdate(bindParams); 
} 
finally 
{
    st.close(); 
}

Exécution d'instructions sans objet Statement

Lorsque vous exécutez une requête qui ne renvoie pas de jeu de résultats et que vous n'utilisez pas de paramètres de liaison, il est inutile de créer un objet Statement. Vous pouvez à la place utiliser Database.executeStatement, qui exécute la préparation, l'exécution et la fermeture d'une instruction en un seul appel.

L'exemple suivant crée une table :

Database d = null;
try {
    d = DatabaseFactory.create("hello.db");
    d.executeStatement( "CREATE TABLE t (a INTEGER PRIMARY KEY, b BLOB);" );            
} catch (Exception e) {
    System.out.println( e.getMessage() );
} finally {
    try {
        d.close();
    } catch (DatabaseException e) {
    }
}

Ces informations vous ont-elles été utiles ? Envoyez-nous vos commentaires.