Sunteți pe pagina 1din 5

Baze de date n Android

Student- Barbos Daniel


1. Introducere
Android este o platform software si un sistem de operare pentru dispozitive i telefoane
mobile bazate pe nucleul Linux, dezvoltat iniial de compania Google, iar mai trziu de Open
Handset Alliance. Android permite dezvoltatorilor s scrie cod gestionat n limbajul Java,
controlnd dispozitivul prin intermediul bibliotecilor Java dezvoltate de Google. Aplicaiile scrise
n C i n alte limbaje pot fi compilate n cod main ARM i executate, dar acest model de
dezvoltare nu este sprijinit oficial de ctre Google.
Un capitol important al sistemului de operare Android este Bazele de date. Cea mai
rspndita baz de date relaional este SQLite.

2. Despre SQLite
2.1 SQLite prezint urmtoarele avantaje :
Nu necesit configurare, este simplu de folosit de ctre dezvoltatori - SQLite nu are
nevoie de "instalare" nainte de a fi folosit. Nu exist procedura de "setup". Nu exist nici
un proces server care necesit pornire, oprire sau configurare. Nu este nevoie de un
administrator pentru a creea o nou instan de baz de date sau pentru a atribui
permisiuni de acces utilizatorilor. SQLite nu folose te fi iere de configurare. Nu trebuie
fcut nimic pentru a ateniona sistemul c SQLite ruleaz. Nici o ac iune nu este necesar
pentru a recupera ceva dup o cdere de sistem sau dup o pan de curent. Nu este nimic
de rezolvat ;

Nu necesit un server pentru a rula - Majoritatea motoarelor de baze de date SQL sunt
implementate c un proces server separat. Programe care doresc acces la baz de date
comunic cu serverul folosind un fel de comunicare interprocese (tipic TCP/IP) pentru a
trimite cereri ctre server i s primeasc napoi rezultate. SQLite nu lucreaz a a. Cu
SQLite, procesul ce dorete s acceseze baz de date cite te i scrie direct din fi ierele
baz de date de pe disc. Nu exist nici un proces server intermediar. Majoritatea bazelor
de date SQL sunt bazate pe modelul client/server. Din cele care sunt fr server, SQLite
este singur care este tiut, de autor, c permite mai multor aplica ii s acceseze aceea i
baz de date n acelai timp ;

ntreaga baz de date este stocat ntr - un singur fiier, pentru fiecare aplicaie n
parte, portabil pe diferite platforme (Unix/Windows) - O baz de date SQLite este un
singur fiier disc (ordinar) care poate fi plasat (localizat) oriunde n ierarhia directoarelor.
Dac SQLite poate citi fiierul disc atunci poate citi orice din baz de date. Dac fi ierul
disc i directorul su sunt writeable (permit scrierea n ele), atunci SQLite poate schimb
orice n baz de date. Fiierele baz de date pot fi uor copiate pe memory stick-uri USB
sau trimise prin e-mail pentru a partajare.

Compact (250 400 KB) - Cnd este optimizat pentru mrime, inreaga librrie SQLite
cu toate opiunile activate este mai mic de 225KiO (dup msurarea pe un ix86 folosind
utilitarul "size" de pe pachetul compliator GNU). Op iunile nenecesare pot fi dezactivate
n timpul compilarii pentru a reduce mai mult mrimea librrii pn sub 170KiO (dac se
dorete).
Suporta comenzi standard SQL2 Create , Select, Insert, Update, Delete, Drop

2.2 Clase folosite


2.2.1

SQLite OpenHelper Are rolul de a facilita crearea unei baze de date pe dispozitivul
local.
Crearea
unei
clase
ce
implementeaz
onCreate(SQLiteDatebase),
onUpgrade(SQLiteDatabase, int, int) si obional onOpen(SQLiteDatabase). Aceast
clas deschide baza de date daca ea exist, o creaz n cazul n care nu exist. Aceast
clas ofer posibilitatea de a amna deschiderea i actualizarea bazei de date nainte
de a o folosii, pentru a evita blocarea aplicaiilor ce ruleaz mult timp pentru a
actualiza baza de date.
Constructori
SQLiteOpenHelper(Context context, String nume,SQLiteDatabase.CursorFactory
factory, int version) ;
SQLiteOpenHelper(Context context, String nume,SQLiteDatabase.CursorFactory
factory, int version, DatabaseErrorHandler errorHandler) ;
Metode
String getDatabaseName() returneaz numele
SQLiteDatabase getReadableDatabase() creaz/deschide baza de date
SQLiteDatabase getWritableDetabase () creaz/deschide baza de date ce va fi
folosit pentru citire i scriere
Evenimente:
onCreate() apare atunci cnd trebuie creat o noua BD (la prima rulare a
aplicaiei)
onUpgrade() apare atunci cand se face upgrade la aplicaie

Private static final String CREATE_TABLE_CLIENTI = create table


+ DBAdapte.DB_TABLE + (_id integer primary key autoincrement, +
nume text, + adresa text, + telefon text );;
@Override
public void onCreate (SQLiteDatabase db) {
db.execSQL (CREATE_TABLE_CLIENTI) ;
this.adaugaClienti(db); //adaug clienti existenti
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int
newVersion) {
db.execSQL(DROP TABLE IF EXISTS + DBAdapter.DB_TABLE);
onCreate(db);
}

2.2.2

Clasa SQLiteDatabase permite obinerea unei instane a unei baze de date,


prin intermediul constructorului i a metodei getWritableDatabase(). Conine
metode pentru crearea, tergerea, executarea unei comenzi SQL.
Constante :
CONFLICT_ABORT
CONFLICT_FAIL
CONFLICT_IGNORE
CONFLICT_NONE
Metode :
SQLiteStatement compileStatement(String sql)
Static SQLiteDatabase - create (SQLLiteDatabase, CursorFactory factory)
Int delete(String table, String whereClause, String[] whereArgs)
Pentru Inserare : Insert (string, string, ContentValue)
Pentru Update : Update(string, ContentValue, String, String[])
Pentru Delete : Delete(string, string, string[])

Private SQLiteDatabase myDb;


Private DatabaseHelper myDbHelper;
Public DBAdapter open() thrrows SQLException {
This.myDbHelper = new DatabaseHelper (this.context, DB_NAME,
null, DB_VERSION);
This.myDb = this.myDbHelper.getWritableDatabase();
Return this;
}

2.2.3

Clasa Cursor este asemntoare cu un cursor ORACLE din punct de vedere


conceptual. Folosit pentru a prinde interogrile din baza de date.
Constructori
SQLiteCursor (SQLiteDatabase db, SQLiteCursorDriver driver, String editTable,
SQLiteQuery query)
SQLiteCursor(SQLiteCursorDriver driver, String editTable, SQLiteQuery query)
Metode
Void - close()
Void deactivate()
Int getColumnIndex (String columnName)
Functii
moveToFirst():mut cursorul pe prima linie;
moveToNext(): mut cursorul pe urmtoarea linie;
getCount(): returneaz numrul de linii ntoarse de querry;
isAfterLast(): verific dac s-a ajuns la sfritul interogrii
get*(): funcii de acces a datelor din coloane;

Public Cursor getAllClients() {


Return this.myDb.query(DBAdapter.DB_TABLE, new String[] {
_id, nume, adresa, telefon }, null, null, null,
null );}

null,

3. Aplicaie Android bazata pe MVC


Model : list de angajai
View : afisare list angajai, posibilitatea adaugare i tergere angajat
Controller : liste adugare/tergere angajai
Se adaug facilitatea de salvare persistent a coninutului modelului ntr-o baz de date. Se poate
folosi mecanismul Observer pentru a sincroniza baza de date cu modelul
Program folosit : Eclipse
Pentru tergere baz de date : Eclipse, DDMS, File Explorer, selectare fiier, iconia minus rou
dreapta sau din aplicaia Android : context.deleteDatabase(Database_Name)
Pentru a vizualiza : Se utilizeaza un editor SQLite pentru a deschide fiierul salvat anterior
Pentru editare : Se folosete ADB (Android Debug Bridge), se lanseaz adb shell din calea
Android- SDK/PLATFORM TOOLS, se navigheaz cu CD, gestionare BD dup comanda
SQLITE3 NUME_DB.DB, iar pentru comenzi SQLITE3 se foloseste comanda .HELP

4. Concluzii
Datorit numeroaselor avantaje ale bazei de date locale SQLite putem considera c pentru
viitor este o necesitate. Aplicaiile Android au numeroase ntrebuinri i sunt ntr o dezvoltare
permanent . Platforma de dezvoltare free i open-source; Arhitectura bazat pe componente
inspirat de mashup-uri de Internet, n sensul c unele componente de cod pot fi reutilizate n
cadrul altor aplicaii sau unele componente predefinite pot fi reimplementate de ctre dezvoltator;
Utilizarea unor servicii "out-of-box": GPS, conexiune la baza de date SQL; Management automat
al ciclului de viaa al aplicaiei: Android este optimizat pentru putere slaba, telefoane cu memorie
mic, ceea ce alte platforme nu au reuit; Grafic i sunete de calitate nalt (OpenGL);
Portabilitatea : o gam larg de hardware curente i viitoare.

Referine
1. http://developer.android.com/reference/android/database/sqlite/SQLiteCursor.html
2.

http://ro.wikipedia.org/wiki/SQLite

3. utcluj.ro/mobile/cursuri_datm/curs_5_DATM.pdf

Bibliografie
1. http : //www.vogella.com/articles/AndroidSQLite/article.html
2. http://www.tutorialspoint.com/sqlite/
3. http://developer.android.com/reference/android/database/sqlite/SQLiteCursor.html
4.

http://ro.wikipedia.org/wiki/SQLite