Guida allo sviluppo

Local Navigation

Utilizzo dei database SQLite

Dopo la creazione di un database SQLite, è possibile utilizzare le istruzioni SQL per eseguire operazioni quali l'aggiunta e il recupero di dati e la modifica del database.

L'elenco di istruzioni SQL supportate e la loro sintassi è disponibile sul sito www.SQLite.org. L'API Database non supporta FTS2 e RTREE.

Esistono due modi per eseguire le istruzioni: creare un oggetto Statement oppure utilizzare Database.executeStatement.

Esecuzione delle istruzioni con un oggetto Statement

I passaggi seguenti delineano come eseguire le istruzioni con un oggetto Statement:

  1. Creare un oggetto Statement tramite il metodo Database.createStatement.
  2. Preparare l'esecuzione dell'istruzione richiamando il metodo Statement.Prepare.
  3. Parametri di associazione nell'istruzione. Si tratta di un'opzione facoltativa, ma consente di migliorare le prestazioni quando si esegue l'istruzione più volte.
  4. Eseguire l'istruzione.
    • Se è probabile che l'istruzione restituisca risultati (ad esempio, un'istruzione SELECT), eseguirla richiamando Statement.getCursor, che restituisce un oggetto Cursor.

    • Se l'istruzione non restituisce un insieme di risultati, eseguirla richiamando uno dei metodi seguenti:
      • Statement.executeUpdate: utilizzare questo metodo durante l'aggiornamento dei dati (tramite un'istruzione UPDATE) e l'esecuzione dell'istruzione più volte con parametri di associazione.
      • Statement.executeInsert: utilizzare questo metodo durante l'inserimento dei dati (tramite un'istruzione INSERT) e l'esecuzione dell'istruzione più volte con parametri di associazione.
      • Statement.execute: utilizzare questo metodo quando si desidera utilizzare parametri di associazione.
  5. Se l'istruzione restituisce un insieme di risultati, recuperare l'insieme di risultati reiterando il cursore restituito riga per riga. Eseguire questa operazione utilizzando l'interfaccia Cursor, che funziona in tutte le circostanze ma è valida solo per l'inoltro. Per il movimento bidirezionale del cursore, ma solo per insiemi di risultati di piccole dimensioni, utilizzare la classe BufferedCursor.
Nota: È necessario chiudere esplicitamente le istruzioni per liberare risorse.

Nell'esempio seguente, vengono aggiornate le righe:

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(); 
}

Esecuzione delle istruzioni senza un oggetto Statement

Quando si esegue una query che non restituisce un insieme di risultati e non si utilizzano parametri di associazione, non è necessario creare un oggetto Statement. Al contrario, è possibile utilizzare Database.executeStatement, che esegue la preparazione, l'esecuzione e la chiusura di un'istruzione in una singola chiamata.

Nell'esempio seguente, viene creata una tabella:

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) {
    }
}
Argomento successivo: Uso dei parametri SQL

Le informazioni sono state utili? Inviateci i vostri commenti.