JdbcTemplate vs hibernate

starghof Messages postés 218 Statut Membre -  
starghof Messages postés 218 Statut Membre -
Bonjour,
salut tout le monde .
svp ya t'il qqn qui peut m'aider !!!
j'ai voulu faire une comparaison entre jdbcTemplate(de core de spring) et hibernate (tout seul) pour inserer des millier de lignes dans une table mysql .
j'ai remarqué que l'insersion en hibernate prend beaucoups du temps par rapport à jdbctemplate !!
est ce logique .
help please !
A voir également:

7 réponses

Anarchunter
 
Salut,

Tu peux nous montrer le test que tu as mis en place (ou au moins le détailler) ?
0
starghof Messages postés 218 Statut Membre 4
 
le traitement consiste à inserer 100 lignes dans une table mysql;
//////////////////////////////////////////////////////////////////////
pour le jdbc template voilà le test :

TransactionTemplate transactionTemplate = new TransactionTemplate(new DataSourceTransactionManager(dataSource));
transactionTemplate.execute(new TransactionCallback() {
JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource);

long timeInMillis1 = System.currentTimeMillis();
for(int j=1;j<=100;j++){
jdbcTemplate.execute("insert into v_j_article values("+j+","+"1,1,1,5,'2009-01-01')");
}

long timeInMillis2 = System.currentTimeMillis();

long timeInMillis3=timeInMillis2-timeInMillis1;
System.out.println(timeInMillis3);

pour hibernate :
Session session = HibernateUtil.currentSession();
long timeInMillis1 = System.currentTimeMillis();
for(int j=1;j<=100;j++){
Transaction tx= session.beginTransaction();
TContact v_j_article = new TContact();
v_j_article.setId_famille(1);
v_j_article.setId_sous_famille(2);
v_j_article.setId_article(4);
v_j_article.setNbr_vente(200);
v_j_article.setMontant_t(System.currentTimeMillis());
v_j_article.setDate(date);
session.save(v_j_article);
tx.commit();
}
long timeInMillis2 = System.currentTimeMillis();

long timeInMillis3=timeInMillis2-timeInMillis1;
System.out.println(timeInMillis3);

//////////////////////////////////////////////////////////

je sais pas si la comparaison est equitable !!!
mais lorsque j'ai fait la comparaison des deux valeurs donnés en ms (timeInMillis3) j'ai remarqué une grande difference !!!

par exemple pour l'insertion des 100 lignes par jdbc template a duré 31millisecondes
par contre pour hibernate elle a duré 3263millisecondes !!!
est ce que ça est logique !!

sinon que doit je changer dans le code exactement pour avoir une comparaison logique !!!
0
starghof Messages postés 218 Statut Membre 4
 
j'ai essayé de voir :
https://arnumeral.fr/projet/mediapart
mais l'exemple qui l'a pris ne contient pas jdbc template !
0
Anarchunter
 
Salut,

Le test n'est pas vraiment équitable, Hibernate est bien plus qu'un simple générateur de requêtes...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
starghof Messages postés 218 Statut Membre 4
 
d'accord !
mais est ce que vous avez une proposition pour le rendre plus equitable !!!
et surtout concernant les transactions !!!!
0
Anarchunter
 
Il est difficile de faire un test équitable vu q'ils ne doivent pas être utilisés pour les mêmes raisons. Sur le forum de Spring, il présente très bien l'intérêt de chacun.
0
starghof Messages postés 218 Statut Membre 4
 
de toute façon merci Anarchunter!
c'est gentil.
je vais voir la possibilité d'ameliorer le test pour avoir des resultats plus precises!
merci.
0