Класс драйвера JDBC не найден: com.mysql.jdbc.Driver

Я разрабатываю веб-приложение, используя maven spring и hibernate, и мне нужно создать схему, используя hibernate, для которой у меня было следующее в моем pom.xml для подключения к базе данных MySQL 5.5.

    <!-- MySql 5.5 Connector -->   
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>5.1.15</version>
    </dependency>

Это импортировало mysql-connector-java-5.1.15.jar в моем Libraries под Maven Dependencies, но когда я пытаюсь подключиться к базе данных, оно дает мне Exception in thread "main" org.hibernate.HibernateException: JDBC Driver class not found: com.mysql.jdbc.Driver.

Я делал это тысячи раз, но я делал это, когда не использовал Maven для управления своими зависимостями и сборки проекта. Раньше у меня был тот же файл jar в папке lib Dynamic Web Project в Eclipse IDE.

Может ли кто-нибудь сказать мне, что мне здесь не хватает и что еще мне нужно, чтобы эта банка была на моем пути сборки?

Спасибо.


person skip    schedule 08.01.2012    source источник


Ответы (7)


Начнем с того, что jar, который мне нужен для подключения к MySQL 5.5, должен был быть mysql-connector-java-5.1.15-bin.jar, но не mysql-connector-java-5.1.15.jar. Во-вторых, этот jar недоступен в репозитории maven, поэтому мне нужно было вручную добавить его в локальный репозиторий maven, а затем добавить как зависимость в файл pom.xml.

Добавление mysql-connector-java-5.1.15-bin.jar в локальный репозиторий maven с помощью

mvn install:install-file -Dfile=C:\Libraries\mysql-connector-java-5.1.15-bin\mysql-connector-java-5.1.15-bin.jar -DgroupId=mysql -DartifactId=mysql-connector-java -Dversion=5.1.15-bin -Dpackaging=jar

а затем добавить следующую зависимость к pom.xml проекта.

    <!-- MySql 5.5 Connector -->   
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>5.1.15-bin</version>
    </dependency> 
person skip    schedule 08.01.2012
comment
JAR-файлы без суффикса -bin из репозитория Maven работают нормально, я сам использую 5.1.20. Возможно, это не имя JAR, которое на самом деле не имеет значения, а содержимое, которое изменилось с первого, который вы использовали, на второй. Уточнение этого, вероятно, сделало бы ответ немного лучше. - person Giulio Piancastelli; 19.02.2014

Спасибо за ответы выше - просто комментарий для пользователей NetBeans: (имена должны быть заменены вашими версиями)

  1. JAR-файл mysql можно загрузить здесь
  2. Исполняемый файл mvn можно найти по адресу c:\Program Files\NetBeans 7.2.1\java\maven\bin
  3. беги set JAVA_HOME=C:\Program Files (x86)\Java\jdk1.7.0_10
  4. Тогда приведенная выше команда будет работать: mvn install:install-file -Dfile=mysql-connector-java-5.1.15-bin.jar -DgroupId=mysql -DartifactId=mysql-connector-java -Dversion=5.1.15-bin -Dpackaging=jar
  5. установленный пакет можно найти в репозитории m2 в вашей домашней папке
person zbycz    schedule 20.12.2012

Мое рабочее решение

 <dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>5.1.18</version>
</dependency>

добавление вышеуказанной зависимости к pom.xml работает для меня...

person Aby Joseph    schedule 24.09.2015

Разархивируйте сгенерированный файл JAR. В ней есть папка WEB-INF. Затем проверьте, существует ли mysql-connector-java-5.1.15.jar в этой WEB-INF/lib.

person Mirko Ebert    schedule 08.01.2012
comment
Структура приложения была создана maven для java webapp, почему файлы зависимостей maven должны находиться в папке lib внутри WEB-INF? Вы не имеете в виду папку WEB-INF в разархивированном mysql-connector-java-5.1.15.jar, не так ли? Что мне не хватает? - person skip; 08.01.2012
comment
Это дает мне ту же ошибку, даже если я настрою путь сборки вручную, добавив mysql-connector-java-5.1.15.jar к пути сборки, что я не уверен, должен ли я был сделать это даже с проектом веб-приложения maven, поскольку с maven я вижу зависимости в Java Resources. - person skip; 08.01.2012
comment
Я просто создаю схему, я не думаю, что папка lib в WEB-INF должна иметь к этому какое-то отношение? Не могу поверить, что я застрял в этом. - person skip; 08.01.2012
comment
Я имею в виду папку WEB-INF/lib в разархивированном веб-приложении. - person Mirko Ebert; 08.01.2012
comment
Я по ошибке использовал не тот файл jar. У меня это работает сейчас. Спасибо :) - person skip; 09.01.2012

Добавьте код ниже в файл pom.xml

    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>5.1.6</version>
    </dependency>
person Faxriddin Abdullayev    schedule 24.07.2017

Проверьте версию MySql, используя SELECT version(), а затем проверьте зависимость версии mysql в pom.xml.

<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>8.0.14</version>
</dependency>

application.properties файлов:

spring.datasource.url=jdbc:mysql://localhost:3306/db_name

spring.datasource.username=root
spring.datasource.password=

spring.datasource.testWhileIdle=true
spring.datasource.validationQuery = SELECT 1
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.jpa.show-sql=true

spring.jpa.hibernate.ddl-auto=update

spring.jpa.properties.hibernate.dialact=org.hibernate.dialact.MySQL5Dialact 
person chandra Shekhar    schedule 27.01.2019

Поместите файл .jar в папку LIB (/lib), если вы используете TOMCAT. Не забудьте перезапустить сервер.

person user13677725    schedule 04.06.2020