flash és más

Elkezdtem az Androidot tanulgatni, ide jegyzetelek magam és mások okulására. Flash programozás is lesz, ha úgy érzem, hogy van olyan amit szívesen megosztanék másokkal.

Friss topikok

Több tábla készítése egy SQLite adatbázisban (Android)

2012.12.11. 11:45 hopetheorc

Egy olyan problémára akadtam, amivel még nem foglalkoztam bővebben, nevezetesen az adatbázis kezeléssel. Jó, jó, megcsináltam én is a google Notepad tutorialját, persze, de az egyrészt nem életszerű, másrészt meg miért használjon az ember SQLite-ot, ha másképp is meg tudja oldani a dolgokat. Hát nem tudja, vagyis csak körülményesen.


Egy jó ismerősöm segített átgondolni az alapokat, mikor felvázoltam a problémát... Azt mondta legalább 3 tábla kell majd az adatok rögzítéséhez. Uhh, mondom, erről nem volt szó, három táblát lekezelni, egyel is meggyűlt a bajom, de megindokolta, azzal, hogy ha dinamikusan akarom kezelni az adatokat, akkor muszáj szétbontani őket.

Egy adatbázis elkészítésével nincs gond, a következőképp történik, készítünk egy stringet az adatbázishoz:

private static final String TABLE_1 =
" create table " + table1 + " (_id integer primary key autoincrement," 
+ " title text not null, note text not null);";

majd meghívjuk az onCreate metódust a DB Adapter osztályunkban:

@Override
public void onCreate(SQLiteDatabase db) {
	db.execSQL(TABLE_1);
}


Hát ez így egyszerű volt. De mi van több tábla esetén?

Tudni kell azt, hogy db.execSQL egy parancsot tud végrehajtani, ezért három db.execSQL parancsot kell meghívnunk az onCreate metódusban, három parancsstringgel:

private static final String TABLE_1 =
" create table " + table1 + " (_id integer primary key autoincrement," + 
" title text not null, body text not null);"; private static final String TABLE_2 = " create table " + POI_TABLE +
" (_id integer primary key autoincrement," + " poiName text not null)"; private static final String TABLE_3 = " create table " + LOC_TABLE +
" (_id integer primary key autoincrement," + " lattitude text not null, longitude text);"; @Override public void onCreate(SQLiteDatabase db) { db.execSQL(TABLE_1); db.execSQL(TABLE_2); db.execSQL(TABLE_3); }

Ennyi az egész. Ha mégsem sikerülne, kódból is lehettörölni a hibás adatbázist:

public void deleteDatabase(){  
context.deleteDatabase(DATABASE_NAME);
}

De a csodálatos Eclipse fejlesztőkörnyezetben is lehetséges és talán így jobban átláthatóbb és kezelhetőbb a dolog. Ehhez nem kell mást tenni, mint a DDMS nézetet megnyitni (Window -> Open perspective -> Other -> DDMS) és itt értelemszerűen kikeresni az előbb létrehozott adatbázist, majd azt lehúzni az adott készülékről.

Szólj hozzá!

Címkék: tábla android SQLite

A bejegyzés trackback címe:

https://hopetheorc.blog.hu/api/trackback/id/tr64959498

Kommentek:

A hozzászólások a vonatkozó jogszabályok  értelmében felhasználói tartalomnak minősülnek, értük a szolgáltatás technikai  üzemeltetője semmilyen felelősséget nem vállal, azokat nem ellenőrzi. Kifogás esetén forduljon a blog szerkesztőjéhez. Részletek a  Felhasználási feltételekben és az adatvédelmi tájékoztatóban.

Nincsenek hozzászólások.
süti beállítások módosítása