2012-04-15 9 views
5

Sto sviluppando Android 3.1 e versioni successive.Implementazione di pattern DAO su progetto Android

Ho i seguenti pacchetti:

enter image description here

es.viacognita.models contengono classi per memorizzare i dati recuperati con un servizio web. Quando ricevo tutti i dati del servizio web, devo inserirlo nel database.

Per rendere corretto, ho pensato di utilizzare il modello DAO, ma non so come farlo.

Se si utilizza il modello DAO, potrebbe essere necessario utilizzare le classi es.viacognita.models? Penso che queste classi saranno classi DAO, non è vero?

Dove devo implementare inserimenti, aggiornamenti o eliminazioni? nella classe DBManager?

risposta

5

È possibile implementare inserimenti, aggiornamenti, eliminazioni e tutte le altre operazioni in classe DBManager o creare una classe di dao separato che fa tutte le operazioni che si desidera fare sul database ...

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

Grazie per la risposta . Ho un'altra domanda: come posso implementare le transazioni? Grazie. – VansFannel

+0

cosa intendi per transazioni? Inserimento, cancellazione e altre operazioni? – 5hssba

+0

Sì. Devo inserire molte tabelle e, se una di esse fallisce, devo annullare tutti gli inserti precedenti. – VansFannel

2

Vorrei utilizzare lo spazio dei nomi di DBManager. Tratto le classi del modello come classi di entità aziendali e creo una libreria separata per il livello DAO (DAL). Usando questa metodologia sei in grado di separare la tua logica di business dal tuo livello di accesso ai dati.