Hibernate - ClassNotFoundException: com.mysql.jdbc.Pilote
Je suis en train de récupérer des données à partir d'une base de données MySQL via Hibernate, mais je suis coincé avec cette erreur:
Failed to create sessionFactory object.org.hibernate.service.classloading.spi.ClassLoadingException: Specified JDBC Driver com.mysql.jdbc.Driver could not be loaded
java.lang.ClassNotFoundException: Could not load requested class : com.mysql.jdbc.Driver
[...]
J'utilise une classe appelée DAOFactory pour obtenir la session hibernate:
public class DAOFactory {
private static boolean isInstance = false;
private static SessionFactory sessionFactory;
private static ServiceRegistry serviceRegistry;
private static Session session;
private DAOFactory() throws ExceptionInInitializerError{
if( !isInstance ) {
try {
Configuration cfg = new Configuration().configure();
serviceRegistry = new ServiceRegistryBuilder().applySettings(cfg.getProperties())
.buildServiceRegistry();
sessionFactory = cfg.buildSessionFactory(serviceRegistry);
} catch (Throwable ex) {
System.err.println("Failed to create sessionFactory object."+ ex);
throw new ExceptionInInitializerError(ex);
}
session = sessionFactory.openSession();
isInstance = true ;
}
}
public static DAOFactory getInstance() {
return new DAOFactory() ;
}
public Session getSession() {
return session ;
}
}
hibernate.cfg.xml:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory name="">
<property name="connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="connection.url">jdbc:mysql://localhost:3306/enigma</property>
<property name="connection.username">root</property>
<property name="connection.password"></property>
<property name="dialect">org.hibernate.dialect.MySQLDialect</property>
<property name="connection.pool_size">1</property>
<property name="current_session_context_class">thread</property>
<property name="cache.provider_class">org.hibernate.cache.NoCacheProvider</property>
<property name="show_sql">true</property>
<property name="hbm2ddl.auto">update</property>
</session-factory>
</hibernate-configuration>
Et mysql-connector-java-5.1.26-bin.jar
est déjà dans le classpath:
Personne ne voir ce que je suis absent ?
Ajouter le pot de votre exécution classpath
Si vous travaillez sur une application web mis l'mysql-connector-java-5.1.26-bin.jar en vertu de dossier lib.
double possible de ClassNotFoundException com.mysql.jdbc.Pilote
double possible de pilote jdbc MySQL et Eclipse: ClassNotFoundexception com.mysql.jdbc.Pilote
Je suis en train de travailler sur un projet JPA, et les 2 questions précédentes ne sont pas liés. Mais merci @Reimeus, il était juste que.
Si vous travaillez sur une application web mis l'mysql-connector-java-5.1.26-bin.jar en vertu de dossier lib.
double possible de ClassNotFoundException com.mysql.jdbc.Pilote
double possible de pilote jdbc MySQL et Eclipse: ClassNotFoundexception com.mysql.jdbc.Pilote
Je suis en train de travailler sur un projet JPA, et les 2 questions précédentes ne sont pas liés. Mais merci @Reimeus, il était juste que.
OriginalL'auteur Arthur | 2013-10-11
Vous devez vous connecter pour publier un commentaire.
Grâce à Reimeus pour la réponse.
mysql-connector-java-5.1.26-bin.jar
doit être dans le runtime classpath.Exécuter -> Run Configurations... -> chemin de classe -> Add external JAR.
Tout propre, essayer à nouveau, et l'Exception est allé.
OriginalL'auteur Arthur
Pour ceux qui utilisent Maven: ajoutez le code suivant dans la dépendance pom.xml.
ou choisir une autre version de ici.
Ensuite, vous pouvez obtenir l'artefact à l'aide de:
(si vous n'utilisez pas l'IDE).
OriginalL'auteur ROMANIA_engineer