Come si crea un database SQLite in Android importndo da un file SQL?

Ho un grande file di text contenente le istruzioni SQL CREATE TABLE e INSERT . Come faccio ad importre questo file nel metodo SQLiteOpenHelper onCreate ?

Oppure, c'è un modo accettato di utilizzare direttamente il file del database binario?

  • Puoi spiegare la funzionalità di requestRouteToHost () in android?
  • Crea account di posta elettronica dal tipo di servizi account esistenti
  • Spostare indietro ad un'attività Android di background
  • App si blocca sul cambiamento di ImageView
  • Vista personalizzata che divide il layout in diagonale con diverse viste figlio
  • come identificare la chiamata in arrivo e la chiamata in output in android
  • Ho bisogno di questo per essere compatibile con Android 1.6.

  • Come animare le immagini una dopo l'altra in android
  • Come eseguire test di unità con Android Studio
  • Android: i tuoi contenuti devono avere un ListView il cui attributo id è android.R.id.list
  • Skeleton di applicazione per supportre lo schermo multiplo
  • Visualizzare l'elenco degli events all'interno del calendario?
  • Come cambiare lo stile di tabulazione in Android?
  • 4 Solutions collect form web for “Come si crea un database SQLite in Android importndo da un file SQL?”

    Nel metodo SQLiteOpenHelper onCreate () è ansible utilizzare solo db.execSQL(...) ma dipende da come è strutturato il tuo file di text (e quanto è grande).

    In alternativa, puoi 'spedire' un db SQLite con la tua app – vedi questo link per darle alcune idee …

    Utilizzo del proprio database SQLite nelle applicazioni Android

    Ho dovuto risolvere lo stesso problema. Imansible trovare un modo diretto per farlo, quindi ho messo il file nella directory res / raw e openRawResource usato openRawResource per get un InputStream su di esso. Leggo le righe finché una non finisce con un ; . Ho quindi passato l'istruzione al database sqlite.

    Speriamo che qualcun altro si avvicini con un modo migliore, ma ho pensato che avrei aggiunto solo il modo in cui ho finito per farlo.

    Seguendo la risposta di Steve Prentice. Questa è la mia implementazione:

    file mydb.sql in res / raw

     CREATE TABLE table1(col1 INTEGER PRIMARY KEY, col2 TEXT); CREATE TABLE table2(col1 INTEGER PRIMARY KEY, col2 TEXT, col3 INTEGER); 

    MyClass.java

      InputStream inputStream = context.getResources().openRawResource(R.raw.mydb); String queries = ""; try { queries = IOUtils.toString(inputStream); } catch (IOException e) { Util.logException(e); } for (String query : queries.split(";")) { db.execSQL(query); } 

    Il problema con l'importzione del proprio file dblite db è che si deve assicurarsi che la versione del motore è stata creata con il file corrispondente alla versione del motore sul dispositivo Android in cui è installato il db. eseguendo il file di script SQL si assicura che il database sia creato utilizzando il motore effettivamente installato sul dispositivo Android.

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