Bonjour,
Je débute avec Hibernate, et j'essaye de faire un mini programme qui basiquement lit ou écrit dans une base de données. J'ai un peu galérer pour générer les DAO, mais maintenant c'est bon, et l'accès aux données marche aussi.
Par contre, ça fait 2 jours que je bloque sur l'écriture dans la base, et je commence à en avoir un peu marre.
J'ai la base de données MySQL 5 (InnoDB) "mydb", avec la table "config" qui a 2 champs :
- key : chaîne de 32 caractères
- value : chaîne de 256 caractères
Voici la fin de la trace d'exécution du programme :
Code:
INFO: Not binding factory to JNDI, no JNDI name configured
30 juin 2009 16:56:21 org.hibernate.cfg.Configuration configure
INFO: configuring from resource:
30 juin 2009 16:56:21 org.hibernate.cfg.Configuration getConfigurationInputStream
INFO: Configuration resource:
30 juin 2009 16:56:21 org.hibernate.util.XMLHelper$ErrorLogger error
GRAVE: Error parsing XML: (1) Content is not allowed in prolog.
org.hibernate.HibernateException: Could not parse configuration:
J'ai l'impression qu'il manque un nom de fichier 3 fois :
Code:
INFO: configuring from resource: [b]ICI[/b]
...
INFO: Configuration resource: [b]ICI[/b]
...
org.hibernate.HibernateException: Could not parse configuration: [b]ICI[/b]
mais je ne trouve personne ayant le même problème...
Mon fichier hibernate.cfg.xml :
Code:
<?xml version="1.0"?>
<!DOCTYPE hibernate-configuration
PUBLIC "-//Hibernate/Hibernate Configuration DTD//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<!-- local connection properties -->
<property name="hibernate.connection.url">jdbc:mysql://localhost:3306/mydb</property>
<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="hibernate.connection.username">utilisateur</property>
<property name="hibernate.connection.password">pass</property>
<!-- property name="hibernate.connection.pool_size"></property -->
<!-- Enable Hibernate's automatic session context management -->
<property name="current_session_context_class">thread</property>
<!-- Disable the second-level cache -->
<property name="cache.provider_class">org.hibernate.cache.NoCacheProvider</property>
<!-- dialect for MySQL -->
<property name="hibernate.dialect">org.hibernate.dialect.MySQL5InnoDBDialect</property>
<property name="hibernate.show_sql">true</property>
<property name="hibernate.transaction.factory_class">org.hibernate.transaction.JDBCTransactionFactory</property>
<mapping resource="hibernate/Config.hbm.xml"/>
</session-factory>
</hibernate-configuration>
Le code de mon programme :
Code:
Session session = HibernateUtil.currentSession();
Transaction tx = null;
try{
tx = session.beginTransaction();
ConfigDAO confDAO = new ConfigDAO();
Config conf = confDAO.load("macle");
conf.setValue("nouvelle valeur");
confDAO.saveOrUpdate(conf);
tx.commit();
} catch(Exception e) {
if(tx!=null)
tx.rollback();
System.out.println(e);
} finally {
session.close();
}
Quelqu'un aurait une idée ?
Merci d'avance