# Java > Gnral Java > Persistance des donnes >  Quels outils utilis JDBC ou JDO ?

## ghassen_ing

Slt  ::yaisse2::  ;

Je suis entrain de dvelopper une application Java ayant un accs  une base de donnes relationnelle Mysql.
Jhsite entre l'emploie de JDBC ou JDO, sachant que la base aura la taille suivante :
12 tables,
+/- 500 enregistrements pour chaque table.

Merci en avance pour voqs reponses ::D:

----------


## g_rare

JDO est plutt destin  gnrer la structure (diffrente selon les implmentations) des tables de la base depuis un "modle objet", et pas vraiment  permettre la persistance des objets dans une base dj existante : penche-toi sur JDBC ou Hibernate.
 :;):

----------


## ghassen_ing

re slt;

Peux tre je ne me suis pas bien exprim, je voulais dire:

Communiquer avec ma base de donnes avec le middleware jdbc ou une implmentation de jdo tel que JPOX ou Xcalia.

Moi je vise le gain de temps lors de dveloppement de l'application et minimiser le temps des transactions.

----------


## xv-mnt

Pourquoi ne pas utiliser Hibernate 3 ? Il respecte les standards EJB3, il peut fonctionner en stand alone, et il s'affranchit de toutes les critures de requtes qui,  terme, reviennent  se construire son propre framework, les bugs en +.
De plus, Hibernate n'est pas aussi intrusif que JDO (pas de modif du bytecode).

Bref, que du bonheur !
www.hibernate.org

En plus, DVP a un forum trs actif sur le sujet !

----------


## g_rare

> De plus, Hibernate n'est pas aussi intrusif que JDO (pas de modif du bytecode).


+1 pour Hibernate, d'autant que JDO est aussi intrusif sur la base (identifiants spcifiques de table).
 :;):

----------


## spassignat

J'ai une trs grande exprience dans le domaine de l'accs aux donnes depuis Java (JDO, EJB, SGBDR, SGBDO, Framework, Hibernate, et autre fwk plus anciens). Pour travailler sur XIC depuis des annes sur de petits comme de trs grands projets, j'ai toute confiance dans le produit d'Xcalia. Parfois ce n'est pas le nombre de tables ou d'enregistrement qui compte mais la qualit transactionnelle ou la perf ou la scurit, ... et ... et la facilit de dveloppement ... Un truc qui est cool avec XIC c'est qu'on peux s'abstraire compltement de la base pendant le dev. On modlise le modle java et c'est presque gagn, reste  compiler (enhancer) et excuter ;-)

XIC rpond au standard JDO, qui n'a jamais t intrusif contrairement  ce qui est dit (c'est digne de la dsinformation quand on sais ce que font d'autre outils). Mais ce serait rduire les solutions Xcalia  la face visible de l'iceberg (JDO). Les acteurs majeurs d'Xcalia font partie des groupes d'expert EJB3, JDO2, SDO, JPA, ... ce qui peut laisser imaginer le devenir de leur produit XIC.

Au moins avec XIC on a l'avantage d'un diteur, d'un support (vraiement cool), ... 
Faites au moins un test, ou demandez  Xcalia de vous faire une dmo, un maquette ... vous aurez une base de comparaison. 


good luck

----------


## spassignat

Pour claircir le fonctionnement d'Hibernate et de JDO:
Bytecode 
JDO:
La modification du bytecode en JDO, consiste  rendre l'objet manageable par le container JDO. Quand on fait un get ou un set il peut y avoir une communication avec le container pour charger les attributs si il ne le sont pas. Modification standardis, mais non obligatoire. Des implmentations prfrent la modif du source Java. question de point de vue; on peut aussi le faire soit mme, c'est juste un peu ...

Hibernate:
en fait il modifie le bytecode au runtime et cre un pattern dlgation dans une sous-classe pour garder le typage. Les objets qu'on utilise ne sont pas issu de la classe qu'on a cod mais de celle gnre par Hibernate. Ceci pose parfois quelques soucis. Le faire soit mme n'est pas pensable.Intrusion dans le MPD - JDO (XIC)
Rien dans la spcification JDO impose ceci. Le point soulev fait rfrence aux deux modes d'identification de JDO (Datastore et application). Dans le second (application), on a la maitrise totale du MPD. Dans le mode datastore-jdo XIC pour sa part propose 4 solutions de gestion de l'identifiant dont 3 sans impacts sur le MPD autre que d'avoir un index unique ;-).
Requtes:
Il n'y a pas plus de besoin de faire des requtes en JDO qu'avec Hibernate. Hibernate si bon soit il existe depuis 2002, XIC/LiDO depuis 2000 et le standard JDO est cr depuis encore plus longtemps. Vu de loin Hibernate a la mme approche que JDO, la persistance d'objet, la diffrence c'est que d'un cot on parle d'un standard, de l'autre on parle d'un framework (excutable).
Standard
Le standard EJB3 est trs sympa, un peu trop vague sur le fonctionnement du moteur de persistance, mais un peu mieux sur l'intgration dans le serveur J2EE. Le langage de query EJB3 trs proche de celui de JDO2.
Standalone
EJB3 est un successeur de EJB2 ... dfinit pour les serveurs J2EE. JDO fonctionne aussi bien en J2SE qu'en J2EE. (voir mme pour certaine version de XIC en J2ME.)

----------

