J'utilise hibernate pour l'accés et la gestion de ma BD. J'ai réussit à implémenter les ordres insert,update et delete (j'ai testé ça et c'est bon dans la base de données). Tans dis que j'ai échoué à afficher les enregitrements récupérer par la methode list().
Il est a noté que je récupére la liste (je teste sur le nombre d'éléments et ça correspond bien au nombre des enregistrements de ma table dans la BD) mais lors du casting vers mon bean (classe de mapping correspondante à ma table) une exception java.lang.ClassCastException
Voici un bout de mon code
<code>
package com.benhassine.beans;
import java.util.Iterator;
import java.util.List;
import org.hibernate.HibernateException;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;
import common.*;
public class TestClass {
public TestClass() {
super();
}
public void delete(DOMarcheSimple currentMarche) {
SessionFactory factory=new Configuration().configure().buildSessionFactory();
Session session=factory.openSession();
Transaction tr=session.beginTransaction();
try{
session.delete(currentMarche);
tr.commit();
}catch(HibernateException e){
e.printStackTrace();
if(tr!=null && tr.isActive()){
tr.rollback();
}
}
catch(Exception e){
e.printStackTrace();
if(tr!=null && tr.isActive()){
tr.rollback();
}
}
session.close();
}
public void insert(DOMarcheSimple currentMarche) {
// TODO Auto-generated method stub
SessionFactory factory=new Configuration().configure().buildSessionFactory();
Session session=factory.openSession();
Transaction tr=session.beginTransaction();
try{
session.save(currentMarche);
tr.commit();
}catch(HibernateException e){
e.printStackTrace();
if(tr!=null && tr.isActive()){
tr.rollback();
}
}
session.close();
}
public static List select() {
SessionFactory factory=new Configuration().configure().buildSessionFactory();
Session session=factory.openSession();
Transaction tr=session.beginTransaction();
List listMarche=null;
try{
listMarche=session.createSQLQuery("select * from marche2").list();
tr.commit();
}catch(HibernateException e){
e.printStackTrace();
if(tr!=null && tr.isActive()){
tr.rollback();
}
}
session.close();
return listMarche;
}
public void update(DOMarcheSimple currentMarche) {
SessionFactory factory=new Configuration().configure().buildSessionFactory();
Session session=factory.openSession();
Transaction tr=session.beginTransaction();
String strQuery="update marche2 M " +
"set M.DES_MARCHE = "+"'"+currentMarche.getDesMarche()+"'"+","+" "+
"M.ADJUDICATAIRE = "+"'"+currentMarche.getAdjuMarche()+"'"+","+" "+
"M.DATE_APPROBATION = "+"'"+currentMarche.getDateApprobation()+"'"+" "+
"where M.N_MARCHE = "+"'"+currentMarche.getNumMarche()+"'"+" ";
System.out.println(strQuery);
try{
//session.createSQLQuery(strQuery).executeUpdate();
session.saveOrUpdate(currentMarche);
tr.commit();
}catch(HibernateException e){
e.printStackTrace();
if(tr!=null && tr.isActive()){
tr.rollback();
}
}
session.close();
}
public static void main(String[] args){
List list=TestClass.select();
Iterator it=list.iterator();
int i=0;
System.out.println("Nombre de lignes retournees = "+list.size());
while (it.hasNext())
{
i++;
try{
DOMarcheSimple currentBean=(DOMarcheSimple) it.next();
System.out.println("("+i+")"+currentBean.getNumMarche()+" "+
currentBean.getDesMarche()+" "+
currentBean.getAdjuMarche()+" "+
currentBean.getDateApprobation());
}catch (ClassCastException e){
e.printStackTrace();
//System.out.println("Erreur de conversion du bean : "+e.getMessage());
}
catch (Exception e){
e.printStackTrace();
//System.out.println("Erreur Inconnue : "+e.getMessage());
}
}
}
}
</code>
Partager