bonjour, je debute avec hibernate et j'utilise une base de données oracle let netbeans comme EDI;pour l'emploi de hibernate j'ai suivi un tutorial et je l'ai adapté a me base. voici le fichier hibernate.cfg.xml:
Code:
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-configuration
PUBLIC "-//Hibernate/Hibernate Configuration DTD//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory >
<property name="hibernate.connection.url">jdbc:oracle:thin:@localhost:1521:XE</property>
<property name="hibernate.connection.driver_class">oracle.jdbc.driver.OracleDriver</property>
<property name="hibernate.connection.username">admin</property>
<property name="hibernate.connection.password">admin</property>
<property name="dialect">org.hibernate.dialect.OracleDialect</property>
<property name="hibernate.show_sql">true</property>
<property name="hibernate.transaction.factory_class">org.hibernate.transaction.JDBCTransactionFactory</property>
<mapping resource="hibernate/Utilisateur.hbm.xml"/>
</session-factory>
</hibernate-configuration>
voici le fichier du mapping Utilisateur.hbm.xml:
Code:
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping package="hibernate">
<class name="hibernate.Utilisateur" table="Utilisateur">
<id name="id_user" type="integer">
<column name="Id_user" not-null="true"/>
</id>
<property name="pwd_user" type="string">
<column name="pwd_user" sql-type="VARCHAR2(50)" not-null="true"/>
</property>
<property name="nom_user" type="string">
<column name="nom_user" sql-type="VARCHAR2(50)" not-null="true"/>
</property>
<property name="prenom_user" type="string">
<column name="prenom_user" sql-type="VARCHAR2(50)" not-null="true"/>
</property>
<property name="type_user" type="string">
<column name="type_user" sql-type="VARCHAR2(50)" not-null="true"/>
</property>
<property name="login_user" type="string">
<column name="login_user" sql-type="VARCHAR2(50)" not-null="true"/>
</property>
</class>
</hibernate-mapping>
voici le POJO: Utilisateur.java
Code:
package hibernate;
public class Utilisateur {
private int id_user;
private String nom_user;
private String prenom_user;
private String type_user;
private String login_user;
private String pwd_user;
/** Creates a new instance of Utilisateur */
public Utilisateur() {
}
public int getId_user() {
return id_user;
}
public void setId_user(int id_user) {
this.id_user = id_user;
}
public String getNom_user() {
return nom_user;
}
public void setNom_user(String nom_user) {
this.nom_user = nom_user;
}
public String getPrenom_user() {
return prenom_user;
}
public void setPrenom_user(String prenom_user) {
this.prenom_user = prenom_user;
}
public String getType_user() {
return type_user;
}
public void setType_user(String type_user) {
this.type_user = type_user;
}
public String getLogin_user() {
return login_user;
}
public void setLogin_user(String login_user) {
this.login_user = login_user;
}
public String getPwd_user() {
return pwd_user;
}
public void setPwd_user(String pwd_user) {
this.pwd_user = pwd_user;
}
}
et maintenant voici le code du test meme si je doute q'il soit d'unr grande importance:
Code:
package hibernate;
import java.util.Iterator;
import java.util.List;
import org.apache.log4j.Logger;
import org.hibernate.HibernateException;
import org.hibernate.Session;
import org.hibernate.Transaction;
import hibernate.InitSessionFactory;
public class TestUser {
private static Logger log =Logger.getLogger(TestUser.class);
public static void main(String[] args) {
Utilisateur user = new Utilisateur();
Utilisateur user2 = new Utilisateur();
user.setNom_user("kallel");
user.setPrenom_user("mokhtar");
user.setLogin_user("mokh");
user.setPwd_user("mokh");
user.setType_user("admin");
user2.setNom_user("Belkhiria");
user2.setPrenom_user("aziz");
user2.setLogin_user("aziz");
user2.setPwd_user("aziz");
user2.setType_user("admin");
createUser(user);
createUser(user2);
// our instances have a primary key now:
log.debug(user);
log.debug(user2);
listUser();
deleteUser(user2);
listUser();
}
private static void listUser() {
Transaction tx = null;
Session session = InitSessionFactory.getInstance().getCurrentSession();
try {
tx = session.beginTransaction();
List users= session.createQuery("select h from utilisateur as h").list();
for (Iterator iter = users.iterator(); iter.hasNext();) {
Utilisateur element = (Utilisateur) iter.next();
log.debug(element);
}
tx.commit();
} catch (HibernateException e) {
e.printStackTrace();
if (tx != null && tx.isActive())
tx.rollback();
}
}
private static void deleteUser(Utilisateur user) {
Transaction tx = null;
Session session = InitSessionFactory.getInstance().getCurrentSession();
try {
tx = session.beginTransaction();
session.delete(user);
tx.commit();
} catch (HibernateException e) {
e.printStackTrace();
if (tx != null && tx.isActive())
tx.rollback();
}
}
private static void createUser(Utilisateur user) {
Transaction tx = null;
Session session = InitSessionFactory.getInstance().getCurrentSession();
try {
tx = session.beginTransaction();
session.save(user);
tx.commit();
} catch (HibernateException e) {
e.printStackTrace();
if (tx != null && tx.isActive())
tx.rollback();
}
}
}
a l'execution du testuser voici ceque j'obtien:
Code:
log4j:WARN No appenders could be found for logger (org.hibernate.cfg.Environment).
log4j:WARN Please initialize the log4j system properly.
%%%% Error Creating HibernateSessionFactory %%%%
org.hibernate.MappingException: Could not read mappings from resource: hibernate/Utilisateur.hbm.xml
at org.hibernate.cfg.Configuration.addResource(Configuration.java:518)
at org.hibernate.cfg.Configuration.parseMappingElement(Configuration.java:1506)
at org.hibernate.cfg.Configuration.parseSessionFactory(Configuration.java:1474)
at org.hibernate.cfg.Configuration.doConfigure(Configuration.java:1453)
at org.hibernate.cfg.Configuration.doConfigure(Configuration.java:1427)
at org.hibernate.cfg.Configuration.configure(Configuration.java:1347)
at hibernate.InitSessionFactory.initSessionFactory(InitSessionFactory.java:91)
at hibernate.InitSessionFactory.getInstance(InitSessionFactory.java:52)
at hibernate.TestUser.createUser(TestUser.java:92)
at hibernate.TestUser.main(TestUser.java:45)
Caused by: org.hibernate.MappingException: Could not parse mapping document in input stream
at org.hibernate.cfg.Configuration.addInputStream(Configuration.java:464)
at org.hibernate.cfg.Configuration.addResource(Configuration.java:515)
... 9 more
Caused by: org.dom4j.DocumentException: Error on line 11 of document : The content of elements must consist of well-formed character data or markup. Nested exception: The content of elements must consist of well-formed character data or markup.
at org.dom4j.io.SAXReader.read(SAXReader.java:482)
at org.hibernate.cfg.Configuration.addInputStream(Configuration.java:455)
... 10 more
Exception in thread "main" org.hibernate.HibernateException: Could not initialize the Hibernate configuration
at hibernate.InitSessionFactory.initSessionFactory(InitSessionFactory.java:107)
at hibernate.InitSessionFactory.getInstance(InitSessionFactory.java:52)
at hibernate.TestUser.createUser(TestUser.java:92)
at hibernate.TestUser.main(TestUser.java:45)
Java Result: 1
je suis bloqué dans cette etape depuis pas mal de temps et je suis sur un projet de fin d'etude. donc si kelkun peut m'apporter de l'aide ;-).