未找到指定的JDBC驱动程序com.mysql.jdbc.Driver类

时间:2013-07-07 16:57:52

标签: java

我正在使用 eclipse juno hibernate 4.1.6 mysql连接器5.1.24 jboss 7.1.1

我尝试了thisthis(作为模块)。

我在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);
    }
}

4 个答案:

答案 0 :(得分:2)

hibernate.cfg.xml文件中检查您是否正确指定了driver classdialect

<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;
}
相关问题