In questa sezione vedremo come, partendo dalla versione Eclipse Juno Modeling, sia possibile installare alcuni plugin che ci permetteranno di gestire la persistenza su database utilizzando il framework Teneo.
Questo framework realizza di fatto uno strato di comunicazione fra EMF e ORM quali Hibernate o EclipseLink, che si occupano appunto della persistenza sul database relazionale.
Il vantaggio che si ottiene utilizzando Teneo è quindi quello di poter operare al livello EMF arrivando al database senza dover avere a che fare con i meccanismi degli strati intermedi, che rimangono completamente a carico di Teneo.
Per gli esempi che intendiamo proporre useremo MySQL come database target.
Andiamo quindi alla voce di menu Help -> Install New Software…, premiamo il bottone Add… , indichiamo “Teneo Dependencies” nel campo Name e inseriamo il seguente indirizzo nel campo Location:
http://www.elver.org/eclipse/2.0.0/update
premiamo OK e selezioniamo i seguenti elementi:
- Apache Commons Logging
- Apache Log4j
- Dom4j
- Hibernate
- Javax Persistence
- MySQL Connector/J
poi premiamo il bottone Next e seguiamo lo wizard finchè non ci viene chiesto di riavviare Eclipse. A questa richiesta possiamo rispondere di no premendo il bottone “Not Now” in quanto intendiamo installare ancora qualcos’altro.
Ripetiamo la procedura ( Help -> Install New Software…) stavolta indicando “Teneo 2.0.0” nel campo Name e inserendo il seguente indirizzo nel campo Location:
http://download.eclipse.org/modeling/emf/teneo/updates/2.0.0/interim/
premiamo OK e selezioniamo l’update “EMF Teneo – Hibernate“
poi premiamo il bottone Next e seguiamo lo wizard finchè non ci viene chiesto di riavviare Eclipse. Stavolta accettiamo premendo “Restart Now“.
Per maggiori dettagli sull’uso di Teneo potete consultare la pagina di Wiki ufficiale:
http://wiki.eclipse.org/Teneo/Hibernate/Download_and_Install
Dato che sto incominciando ad utilizzare eclipse (e Java) come sviluppo di applicazioni desktop database driven, vorrei sapere se e’ possibile usare db come derby o H2 e loro eventuale configurazione.
Grazie
Franco,
Teneo utilizza Hibernate (o EclipseLink) per la connessione al database, quindi è sufficiente cambiare i parametri di connessione in modo opportuno. Se ad es. fai riferimento al tutorial Eclipse EMF: un CRUD immediato per database e intendi usare Derby, i parametri dovrebbero essere impostati come segue:
props.setProperty(Environment.DRIVER, “org.apache.derby.jdbc.ClientDriver”);
props.setProperty(Environment.USER, “”);
props.setProperty(Environment.PASS, “”);
props.setProperty(Environment.URL, “jdbc:derby://localhost:1527/myDerbyDb”);
props.setProperty(Environment.DIALECT, org.hibernate.dialect.DerbyDialect.class.getName());
Vorrei provare ad usare Teneo con DB2 , cosa devo fare ?
Ciao Renzo,
quando si usa Teneo e si opta per un certo database occorrono due cose:
1) che esista il giusto Dialect di Hibernate per quel database (e per DB2 questo requisito è soddisfatto: “org.hibernate.dialect.DB2Dialect”). Per una lista completa dei dialetti Hibernate vedere qui: http://docs.jboss.org/hibernate/core/3.3/reference/en/html/session-configuration.html
2) che il driver jdbc sia disponibile a livello di PDE (Plug-in Development Environment). Per questo basta creare un Plug-in (File->New->Plug-in Project), anche privo di Activator e di contributo alla UI, che possiamo chiamare in questo caso ad es. “com.ibm.db2.jdbc”, creare una cartella “lib”, copiare al suo interno il jar del driver jdbc e dal tab “Runtime” esportare tutti i package. A questo punto questo plug-in è da trattare come nel tutorial viene trattato il plug-in “com.mysql.jdbc”. L’unica differenza quindi è che stavolta il plug-in che contribuisce al jdbc driver non sta nella platform, ma viene aggiunto esplicitamente da noi.
Sono a disposizione se questa fase non dovesse essere chiara.
Vincenzo