JdbcTemplate vs hibernate
starghof
Messages postés
218
Statut
Membre
-
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 !
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:
- JdbcTemplate vs hibernate
- Udp vs tcp - Guide
- Samsung a15 vs a16 - Accueil - Téléphones
- Gb vs go ✓ - Forum Matériel & Système
- Mkv vs vob ✓ - Forum Format et connectique vidéo
- X86 vs x64 ✓ - Forum Windows
7 réponses
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 !!!
//////////////////////////////////////////////////////////////////////
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 !!!
j'ai essayé de voir :
https://arnumeral.fr/projet/mediapart
mais l'exemple qui l'a pris ne contient pas jdbc template !
https://arnumeral.fr/projet/mediapart
mais l'exemple qui l'a pris ne contient pas jdbc template !
Salut,
Le test n'est pas vraiment équitable, Hibernate est bien plus qu'un simple générateur de requêtes...
Le test n'est pas vraiment équitable, Hibernate est bien plus qu'un simple générateur de requêtes...
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
d'accord !
mais est ce que vous avez une proposition pour le rendre plus equitable !!!
et surtout concernant les transactions !!!!
mais est ce que vous avez une proposition pour le rendre plus equitable !!!
et surtout concernant les transactions !!!!