come faccio a creare il database nella mia applicazione Android?

Sto cercando di utilizzare SQLite nella mia applicazione Android. Ho creato la class helper come questa:

public class EventoSQLHelper { // Configuração da base(nome e versão) private static final int DB_VERSAO = 1; private static final String DB_NOME = "pacixDB"; // Configuração da tabela (nome, colunas, tag para log) private static final String tabela_nome = "eventos"; private static final String coluna_id = "id"; private static final String coluna_desc = "descricao"; private static final String coluna_data = "dataEvento"; private static final String TAG = EventoSQLHelper.class.getSimpleName(); // Comando sql para criação da tabela private static final String DATABASE_CREATE = "create table if not exists eventos (id integer primary key autoincrement, " + "descricao VARCHAR not null, dataEvento date);"; // Contexto para o qual vai passar as informações private final Context context = null; private DataBaseHelper DBHelper; private SQLiteDatabase database; // Helper que extende de SQLiteOpenHelper - implementa práticas para salvar, // criar, etc private static class DataBaseHelper extends SQLiteOpenHelper { DataBaseHelper(Context context) { super(context, DB_NOME, null, DB_VERSAO); } // executado quando cria a class: cria a base se não existir @Override public void onCreate(SQLiteDatabase db) { try { db.execSQL(DATABASE_CREATE); } catch (Exception e) { e.printStackTrace(); } } // método para upgrade da base @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { Log.w(TAG, "Atualizando base da versão " + oldVersion + " para a versão " + newVersion + ", que irá destruir todos os dados."); db.execSQL("DROP TABLE IF EXISTS eventos"); onCreate(db); } } public EventoSQLHelper Open() throws SQLException { this.database = DBHelper.getWritableDatabase(); return this; } public void close() { DBHelper.close(); } public long inserirRegistro(String descricao, String data) { ContentValues valoresIniciais = new ContentValues(); valoresIniciais.put(coluna_desc, descricao); valoresIniciais.put(coluna_data, data); return database.insert(tabela_nome, null, valoresIniciais); } public boolean deletarRegistro(long id) { return database.delete(tabela_nome, coluna_id + " = " + id, null) > 0; } public Cursor getRegistros() { return database.query(false, tabela_nome, new String[] { coluna_id, coluna_desc, coluna_data }, null, null, null, null, null, null); } 

Ho seguito alcuni tutorial su internet e ho capito la class sqlhelper. Ma adesso, come faccio a creare il database? È un file, giusto? Devo crearlo su un metodo onCreate della mia attività principale?

  • Elaborazione audio e voce di Android
  • camera predefinita per scattare una foto in android
  • Mostra freccia indietro sulla barra degli strumenti Android
  • Facendo clic sull'icona dell'hamburger sulla barra degli strumenti non apre il cassetto di navigazione
  • Caricamento di una risorsa in una bitmap mutevole
  • Possiamo interagire con l'attività di background quando visualizziamo una window di dialogo su android
  • Come faccio a fare questo?

  • Come scuotere su Android 2.2
  • OnCreateOptionsMenu viene chiamato troppe volte in ActionBar utilizzando le tabs
  • genarate date tra due date in android
  • Come leggere il file di text in android dal web?
  • android su Listen Change Listener
  • Android L's Ripple Effect - Feedback di touch per i pulsanti - Utilizzo di XML
  • 2 Solutions collect form web for “come faccio a creare il database nella mia applicazione Android?”

    Bene, citiamo i Documenti :

    Una class di helper per gestire la creazione di database e la gestione delle versioni.

    Si crea una sottoclass che implementa onCreate (SQLiteDatabase), onUpgrade (SQLiteDatabase, int, int) e opzionalmente onOpen (SQLiteDatabase), e questa class si occupa dell'apertura del database se esiste, creandola se non lo è e l'aggiornamento come necessario . Le transactions vengono utilizzate per assicurarsi che il database sia sempre in uno stato sensibile.

    Quindi, ciò significa che non è necessario creare il "file di database" che è fatto per voi da SQLiteOpenHelper . Quindi la prima volta che aprirai il tuo database verrà creata. ( onCreate automaticamente tramite onCreate nel DataBaseHelper)

    Di solito si utilizza un SQLiteOpenHelper da un ContentProvider.

    http://developer.android.com/guide/topics/providers/content-provider-basics.html

    Il database SQLite è un file, ma normalmente non c'è bisogno di preoccuparsi di questo.

    Il file di database viene infatti creato quando viene chiamato il metodo onCreate dell'assistente (se non viene generata alcuna exception). Ricorda che, a less che non si disinstalla l'applicazione, non si dovrebbe aspettare che questo metodo sia nuovamente richiamato.

    Durante la normale durata di un'applicazione, probabilmente verranno forniti gli aggiornamenti e invierai la nuova versione nell'archivio di app where la gente lo scaricherà per la prima volta e installarlo (onCreate chiamato) oppure aggiornarlo (onUpgrade chiamato SOLO se incrementato il numero di versione del database.)

    Poiché l'archivio Google Play non fornisce un modo per consentire agli utenti di tornare a una versione precedente della tua applicazione, in genere non dovrai preoccuparti di onDowngrade. Se tuttavia state fornendo versioni precedenti della tua applicazione al di fuori dell'archivio Google Play, dovresti alless sovrascrivere la versione in modo da non lanciare un SQLiteException che è l'implementazione predefinita.

    Ora, torna su onUpgrade. Alcune cose che dovresti fare qui sono aggiungere una tabella, modificare una tabella esistente, eliminare una tabella, ecc. Ho gestito questo script degli script .sql che ho inserito nella cartella degli asset della mia applicazione con un nome come upgrade_v1_v2.sql .

    Ci sono alcune cose con SQLite che dovresti essere a conoscenza di ciò che sono dettagliate qui:

    http://www.sqlite.org/omitted.html

    Tuttavia, solitamente sono soluzioni alternative. Ad esempio, se voleste aggiungere una nuova colonna con un vincolo di chiave estera a una tabella esistente, non è ansible utilizzare il command ALTER TABLE per questo perché non è attualmente supportto da SQLite. Invece, dovrai creare una tabella temporanea con il nuovo set di colonne desiderato, quindi copiare i dati dalla vecchia tabella in questa tabella temporanea, quindi abbandonare la vecchia tabella e infine rinominare la tabella temporanea al nome della tabella precedente – tutti preferibilmente all'interno di un'operazione per proteggere qualcosa che va male a metà strada.

    Spero che questo ti aiuti!

    L'Android è un fan Android di Google, tutto su telefoni Android, Android Wear, Android Dev e applicazioni Android Games e così via.