Lottando Con DataTable in Java
-
27-09-2019 - |
Domanda
Sono uno sviluppatore .NET provare la mia mano a Java. Il mio progetto attuale ha un livello di interfaccia utente, livello di logica business, e uno strato di accesso ai dati. Attualmente sto lavorando sulla DAL.
Non ho ancora la connessione a un database esterno; Avevo sperato di avere le mie classi DAL utilizzano DataTable in memoria fino a che il DB è a posto.
In .NET è molto facile fare DataTable in memoria, selezionate da loro, aggiungere a loro, e rimuovere da loro. Ma, in Java, sono stato in grado di trovare qualcosa che fa la stessa cosa.
I stava considerando di sostituire il 'DataTable' con una collezione di oggetti fortemente tipizzati; ma che richiederebbe l'aggiunta di riferimenti a Business strato interno della DAL (e ho pensato che era un no-no).
Qualcuno può aiutarmi a uscire sviluppatore confuso? Se tutto questo approccio è difettoso, cosa faresti? Se ho perso l'equivalente di un DataTable in Java -? Che cosa è
Soluzione
Ecco un articolo su esecuzione di un database Derby in memoria.
Se avessi saputo quello del database e quello che la persistenza biblioteca si sta utilizzando, potrei essere in grado di dare una risposta più precisa.
Altri suggerimenti
Si potrebbe utilizzare un database memoria come descritto in questa risposta .
Un confronto tra diversi database di memoria è mostrata in questa domanda SO .
Stavo considerando di sostituire la 'DataTable' con una raccolta di fortemente tipizzato oggetti; ma che avrebbe richiedono l'aggiunta di riferimenti a Business strato interno del DAL (e ho pensato che era un no-no).
Chi fa queste regole?
Se il livello di accesso ai dati è responsabile per le operazioni CRUD per oggetti del modello, mi sembra che essa deve avere riferimenti ad essi. Non c'è modo per aggirare questo.
Il livello esigenza persistenza non conoscere i livelli di servizio o di vista.
La classe unica completamente disaccoppiati è uno che parla con nessuno e non offre nulla. E 'inutile.
Non essere appeso così su "regole". Stai cercando di sovrapporre la vostra applicazione. Stai mettendo tutte le cose di persistenza in uno strato di classi.
Non credo in-memory database ha alcun effetto sul modo in cui si progetta il livello di persistenza. Si dovrebbe essere in grado di scambiare in un database relazionale o file flat o qualsiasi altro meccanismo, ma l'interfaccia non dovrebbe cambiare. Questo è un dettaglio di implementazione.
O / Ms erano disponibili molto prima in Java che in .NET. DataSet sono errate, nel senso che ti costringono a programmare procedurale. Provate a interagire con gli oggetti e mappare quelli al DB in seguito.