2012-04-15 15 views
5

Pracuję nad Androidem 3.1 i nowszym.Implementacja wzoru DAO na Androidzie

Mam następujące pakiety:

enter image description here

es.viacognita.models zawierać klas do przechowywania danych pobranych z serwisu internetowego. Kiedy otrzymuję wszystkie dane usługi sieciowej, muszę wstawić je do bazy danych.

Aby to naprawić, myślałem, że używam wzoru DAO, ale nie wiem jak to zrobić.

Jeśli używam wzoru DAO, czy muszę używać klas es.viacognita.models? Myślę, że te zajęcia będą klasami DAO, prawda?

Gdzie muszę wprowadzić inserty, aktualizacje lub usunięcia? na DBManager klasie?

Odpowiedz

5

można zaimplementować inserty, aktualizacje, usuwa i wszystkie inne operacje w klasie DBManager lub utworzyć oddzielne klasy DAO, która wykonuje wszelkie operacje, które chcesz zrobić na bazie ...

public class DAO { 
private SQLiteDatabase database,customdb; 
private DBManager dbHelper; 



public DAO(Context context) { 
    dbHelper = new DBManager(context); 
} 
public void open() throws SQLException { 
    database = dbHelper.getWritableDatabase(); 

} 
public void close() { 
    dbHelper.close(); 
} 
//insering,deleting and all other operations you want to perforem on the database 
    } 
+0

Dzięki za odpowiedź . Mam kolejne pytanie: w jaki sposób mogę realizować transakcje? Dzięki. – VansFannel

+0

co masz na myśli przez transakcje? Wstawianie, usuwanie i inne operacje? – 5hssba

+0

Tak. Muszę wstawić wiele tabel, a jeśli jedno z nich zawiedzie, muszę cofnąć wszystkie poprzednie wstawki. – VansFannel

2

Używałbym przestrzeni nazw DBManager. Traktuję twoje klasy modelu jako klasy jednostek biznesowych i tworzę oddzielną bibliotekę dla warstwy DAO (DAL). Dzięki tej metodologii możesz oddzielić logikę biznesową od warstwy dostępu do danych.