我正在使用 eclipse juno 和 hibernate 4.1.6 , mysql连接器5.1.24 , jboss 7.1.1
我在WEB-INF/lib
文件夹中有连接器JAR,没有它我也尝试了一次。一切都失败了。我不知道怎么能解决这个问题。整个堆栈跟踪:
18:35:44,284 ERROR [stderr] (http-localhost-127.0.0.1-8080-1) Error creating Session: org.hibernate.service.classloading.spi.ClassLoadingException: Specified JDBC Driver com.mysql.jdbc.Driver class not found
连接器是类路径,它位于Maven依赖项库中。我把它放在lib文件夹和系统库中......没有任何作用。
public class HibernateUtil {
private static SessionFactory sessionFactory;
private static ServiceRegistry serviceRegistry;
static
{
try
{
Configuration configuration = new Configuration().configure("hibernate.cfg.xml");
serviceRegistry = new ServiceRegistryBuilder().applySettings(configuration.getProperties()).buildServiceRegistry();
sessionFactory = configuration.buildSessionFactory(serviceRegistry);
}
catch (HibernateException he)
{
System.err.println("Error creating Session: " + he);
throw new ExceptionInInitializerError(he);
}
}
答案 0 :(得分:2)
在hibernate.cfg.xml
文件中检查您是否正确指定了driver class
和dialect
:
<property name="connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="dialect">org.hibernate.dialect.MySQLDialect</property>
(这些是<session-factory>
)
然后,只需构建会话工厂:
sessionFactory = new Configuration().configure().buildSessionFactory();
如果应用程序仍然没有看到连接器的Maven依赖关系,请尝试执行全新安装,然后检查项目的库列表,MySQL Connector
出现在那里。
答案 1 :(得分:1)
请检查您的mysql连接器版本是否与系统上安装的mysql db兼容。例如mysql连接器版本5.1.26与mysql 5.6.25兼容,而5.1.34不兼容。
答案 2 :(得分:0)
尝试将连接器添加到构建路径作为外部jar OR,创建一个lib文件夹并将连接器jar放入其中,然后Add Library
到您的构建路径并为该连接器提供lib文件夹路径。
答案 3 :(得分:0)
Configuration configuration = new Configuration();
configuration.configure();
ServiceRegistryBuilder serviceRegistryBuilder = new ServiceRegistryBuilder().applySettings(configuration.getProperties());
sessionFactory = configuration.buildSessionFactory(serviceRegistryBuilder.buildServiceRegistry());
// end of static block
public static SessionFactory getSessionFactory() {
return sessionFactory;
}