Tramite la classe SqliteDatabase è possibile produrre uno Statement precompilato e riutilizzabile grazie al metodo compileStatement che riceve in input un oggetto String contenente le direttive SQL:
// otteniamo un riferimento ad un oggetto SqliteDatabase SQLiteDatabase db=.... // compiliamo il comando SQL da eseguire SQLiteStatement ss=db.compileStatement("INSERT INTO ....");
Una volta ottenuto l’oggetto SQLiteStatement, potremo:
- eseguire il comando senza ottenere risultato con il metodo execute() ma ciò è possibile solo per direttive che non includono le classiche operazioni CRUD (SELECT, INSERT, DELETE, UPDATE). Il metodo è pertanto destinato a modifiche strutturali come creazioni/distruzioni/modifiche di tabelle, indici, view, etc.;
- eseguire inserimenti con executeInsert() il quale restituirà la chiave primaria identificante il nuovo record o modifiche/cancellazioni con executeUpdateDelete() il cui risultato sarà un int che segnalerà il numero di righe coinvolte nell’operazione;
- svolgere query restituendo un unico valore simpleQueryForLong() e simpleQueryForString() che forniranno, rispettivamente, un valore long o una stringa.
I vantaggi di SQLiteStatement sono individuabili, in primis, nell’ottimizzazione delle risorse grazie al riutilizzo di un comando precompilato ma anche nella rapidità di lettura dei risultati visto che quasi tutti i metodi offrono un valore di ritorno diretto e senza necessità di elaborazioni.
Avete mai utilizzato questa classe? Provatela e vedrete come sarà facile snellire il vostro codice per la gestione dei dati!
No Responses to “Android e SQLite: comandi precompilati con SqliteStatement”