2012-08-07 17 views
6

Abbiamo un progetto con database MySQL e Spring come framework. Sono molto nuovo a primavera e cercando di implementare il livello di accesso al database e ha scoperto che ci sono diverse opzioni disponibili, comeSpring Hibernate Vs jdbc template vs spring orm

  • Utilizzando Primavera + Hibernate
  • Utilizzando Spring JDBC Template
  • Utilizzando Primavera ORM modulo

Ho passato i vari post in StackOverflow e ho fatto un po 'di ricerche sul web, ma ogni domanda aveva risposte diverse a supporto di diverse opzioni. Inoltre, ho visto una citazione sul modello Spring JDBC che non è stato raccomandato ora.

L'applicazione potrebbe avere circa 1000 transazioni all'ora e avere il 60% di letture e il 40% di scritture, circa.

Qualcuno può aiutarmi a trovare una risposta su quale delle 3 opzioni è adatta e perché? Oppure, se puoi indicarmi alcune risorse, sarebbe molto apprezzato.

risposta

22

Hibernate è solo una delle molte soluzioni ORM supportate da Spring; altri sono elencati here.

Si può scegliere ORM, se tutti i seguenti fosse vero:

  1. hai avuto un modello di oggetto solido per mappare i dati relazionali.
  2. Ti è piaciuto l'SQL generato per te dal livello ORM.
  3. Lo schema è conforme ai requisiti della soluzione ORM.
  4. Non si stavano utilizzando molte stored procedure.
  5. Non pensavi di poter ottimizzare SQL meglio di quanto potesse fare l'ORM.

Se uno di questi non è vero, forse un ORM non fa per voi.

Il modello JDBC a molla è leggero e semplice. Scommetterei che potrebbe soddisfare i tuoi requisiti dichiarati. Consiglierei di andare avanti fino a quando non scoprirai che i tuoi requisiti ti portano a ORM. Se segui il tipico idioma Spring e crei un livello di persistenza basato sull'interfaccia, ciò significa iniettare un'implementazione anziché un'altra.