Come rendere un'applicazione lato server indipendente dal database

0

Abbiamo un'applicazione lato server (in JAVA, comunica tramite servizi Web) che accede a un database. Se desideriamo vendere solo l'applicazione a un cliente, in modo che possa utilizzare la propria scelta di database (RDBMS per ora), come posso progettare l'applicazione per funzionare con qualsiasi database sviluppato secondo alcune specifiche? Per ora ho considerato l'JPA ma non sono ancora sicuro di tutte le sue funzionalità. Immagina se Facebook vendesse la propria logica di base, indipendentemente dal database, in modo che l'acquirente possa implementare qualsiasi database e collegarlo alla logica di Facebook.

    
posta Chetan Gowda 02.05.2018 - 07:59
fonte

1 risposta

1

JPA è una specifica: vorresti sfruttarne un'implementazione. Ci sono un gran numero di Object Relational Mappings (ORM) che sono indipendenti dal database, molti dei quali forniscono implementazione JPA - Hibernate, SpringData, EclipseLink (utilizzato per essere TopLink), Apache Cayenne.

Se vuoi lavorare direttamente sul livello SQL piuttosto che su un JPA, dovresti scrivere il tuo SQL, la specifica ANSI SQL, che la maggior parte dei database supporta. Se segui questo percorso, ti consiglio di incapsulare il tuo SQL e di fornire un meccanismo per l'override specifico del DB di SQL, per fornire l'opzione per l'ottimizzazione di SQL per un DB specifico e sfruttando la sintassi e le caratteristiche specifiche del DB.

    
risposta data 03.06.2018 - 18:41
fonte