sql >> Databasteknik >  >> RDS >> SQLite

Är det verkligen nödvändigt att skapa SQLite-tabeller varje gång programmet startar?

Jag tror att du missförstår här. När ett SQLiteOpenHelper-objekt konstrueras kommer det att kontrollera om SQLite-databasen finns eller inte, om inte kommer det att anropa dess onCreate( ) metod (där normalt utvecklare implementerar skapa databasen SQL)

Uppdatering:
@Clay Shannon:Jag kommer att förklara mekanismen som Eclipse och Android projekterar. Låt oss säga att du använder Eclipse för att programmera Android-projekt. Det nya projektet kommer att skapa en projektmapp i arbetsytan (i ditt fall är det C:\aXX3&Space\Android\workspace och projektmappen är OnDemandAndAutomatic_Project ). Den här mappen kommer att innehålla flera undermappar som:src, bin, assets, res,... Varje mapp har sin egen roll, och du är intresserad av tillgångsmappen, eller hur? Assets-mappen används för att innehålla referensfiler (som inte kan eller du inte vill lägga i res-mappen) såsom:html-fil, ljudfil, bildfil, textfil... När Eclipse bygger apk från projektet, dessa filer ingår också i apk. När du installerar APK-filen på Android-enhet kopieras APK-filen till Android-systemmappen, och även en mapp som innehåller appdata skapas, som Dharmendra nämnde:/data/data/{packagename}/ (paketnamn som com.google.app, etc, och den här sökvägen är för ditt Android OS på din enhet, inte för Windows).

Ditt fall här är att du vill använda din redan existerande databas, så du måste implementera en funktion som kontrollerar om din databas finns eller inte, om inte kopiera din db till databassökvägen /data/data/ {paketnamn}/databaser/ , och anropa den funktionen när din app startar. Och hur man gör det finns redan besvarat här Hur man kopierar befintlig databas från en app till en annan. Här finns också hänvisning till tillgång till tillgångsfiler, om du inte vet http://www.wiseandroid.com/post/2010/06/14/Android-Beginners-Intro-to-Resources-and-Assets.aspx

Hoppas nu att du kan lösa ditt problem. Obs :din redan existerande db måste vara en SQLite-databas, annars kommer appen inte att känna igen den även om du kopierar till rätt sökväg.



  1. Oracle:Vad gör `(+)` i en WHERE-sats?

  2. Hur alias ett fält eller en kolumn i MySQL?

  3. Hur återställs när ett fel uppstår när SQL loader-kommandot körs?

  4. MySqlCommand Command.Parameters.Add är föråldrat