sql >> Database >  >> RDS >> SQLite

Is het echt nodig om elke keer dat de applicatie start SQLite-tabellen te maken?

Ik denk dat je het hier verkeerd begrijpt. Wanneer een SQLiteOpenHelper-object wordt geconstrueerd, zal het controleren of de SQLite-database bestaat of niet, zo niet, dan zal het zijn onCreate( ) aanroepen methode (waar normaal ontwikkelaars de create database SQL implementeren)

Update:
@Clay Shannon:Ik zal het mechanisme uitleggen dat Eclipse en Android project werken. Laten we zeggen dat u Eclipse gebruikt om een ​​Android-project te programmeren. Het nieuwe project maakt een projectmap aan in de werkruimte (in uw geval is dit C:\aXX3&Space\Android\workspace en de projectmap is OnDemandAndAutomatic_Project ). Deze map zal verschillende submappen bevatten zoals:src, bin, assets, res,... Elke map heeft zijn eigen rol, en je bent geïnteresseerd in de asset map, toch? De map Assets wordt gebruikt om referentiebestanden te bevatten (die niet in de res-map kunnen of willen worden geplaatst), zoals:html-bestand, geluidsbestand, afbeeldingsbestand, tekstbestand... Wanneer Eclipse de apk van project bouwt, deze bestanden zijn ook opgenomen in de apk. Wanneer u de apk op een Android-apparaat installeert, wordt de apk gekopieerd naar de Android-systeemmap en wordt er ook een map gemaakt met app-gegevens, zoals Dharmendra al zei:/data/data/{packagename}/ (pakketnaam zoals com.google.app, enz., en dit pad is voor uw Android-besturingssysteem van uw apparaat, niet voor Windows).

Uw geval hier is dat u uw reeds bestaande database wilt gebruiken, dus u moet een functie implementeren die controleert of uw database bestaat of niet, zo niet kopieer uw db naar het databasepad /data/data/ {pakketnaam}/databases/ , en roep die functie aan wanneer uw app start. En hoe u dit moet doen, wordt hier al beantwoord. Hoe u een bestaande database van de ene app naar de andere kopieert. Hier is ook een verwijzing naar toegang tot activabestanden, voor het geval u het niet weet http://www.wiseandroid.com/post/2010/06/14/Android-Beginners-Intro-to-Resources-and-Assets.aspx

Hoop dat je nu je probleem kunt oplossen. Opmerking :uw reeds bestaande db moet een SQLite-database zijn, anders zal de app deze niet herkennen, zelfs niet als u naar het juiste pad kopieert.



  1. Hoe het schema van meerdere PostgreSQL-tabellen in één bewerking te wijzigen?

  2. SQL DROP TABLE voor beginners

  3. Hoe de ORACLE_HOME-variabele correct instellen op Ubuntu 9.x?

  4. Vind de bytegrootte van een rij in PostgreSQL