Гость
Map
Форумы / Java [игнор отключен] [закрыт для гостей] / Spring не может загрузить драйвер mysql (com.mysql.cj.jdbc.Driver) / 14 сообщений из 14, страница 1 из 1
13.10.2020, 22:28
    #40008273
Vlad__i__mir
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Spring не может загрузить драйвер mysql (com.mysql.cj.jdbc.Driver)
Здравствуйте!

Spring Boot проект при запуске выдает ошибку, что не может загрузить драйвер mysql (com.mysql.cj.jdbc.Driver):
авторCaused by: java.lang.IllegalStateException: Cannot load driver class: com.mysql.cj.jdbc.Driver at org.springframework.util.Assert.state(Assert.java:97) at org.springframework.boot.autoconfigure.jdbc.DataSourceProper ties.determineDriverClassName(DataSourceProperties.java:223) at org.springframework.boot.autoconfigure.jdbc.DataSourceProper ties.initializeDataSourceBuilder(DataSourceProperties.java:1 75) at org.springframework.boot.autoconfigure.jdbc.DataSourceConfig uration.createDataSource(DataSourceConfiguration.java:43) at org.springframework.boot.autoconfigure.jdbc.DataSourceConfig uration$Hikari.dataSource(DataSourceConfiguration.java:85) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeM ethodAccessorImpl.java:62) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Del egatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:566) at org.springframework.beans.factory.support.SimpleInstantiatio nStrategy.instantiate(SimpleInstantiationStrategy.java:154) ... 90 more

В application.properties выделяет почему-то красным "cj.jdbc.Driver":
Код: xml
1.
2.
3.
4.
spring.datasource.url=jdbc:mysql://localhost:3306/db_users
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver



В pom.xml указал следующие зависимости:
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.3.4.RELEASE</version>
    <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.authorization</groupId>
    <artifactId>authorizationservice</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>war</packaging>
    <name>AuthorizationService</name>
    <description>Service for user authorization</description>
 
    <properties>
        <java.version>11</java.version>
        <mysql-version>5.1.47</mysql-version>
    </properties>
 
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-jpa</artifactId>
        </dependency>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>${mysql-version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-thymeleaf</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
 
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-tomcat</artifactId>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
            <exclusions>
                <exclusion>
                    <groupId>org.junit.vintage</groupId>
                    <artifactId>junit-vintage-engine</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
    </dependencies>
 
    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>



Сам Hibernate сконфигурировал так:
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
@Configuration
@ComponentScan(basePackages = { "config"})
@EnableWebMvc
@EnableTransactionManagement
public class HibernateConfig {
    private static Logger logger= LoggerFactory.getLogger(HibernateConfig.class);
 
    @Bean
    public DataSource getDataSource() {
        DriverManagerDataSource dataSource = null;
        try {
            dataSource = new DriverManagerDataSource();
            dataSource.setDriverClassName("com.mysql.jdbc.Driver");
            dataSource.setUrl("jdbc:mysql://localhost:3306/db_users?useSSL=false");//"jdbc:mysql://localhost:3306/dbfastwater?useSSL=false"
            dataSource.setUsername("root");
            dataSource.setPassword("root");
        } catch (Exception e) {
            logger.error("MysqlDataSource bean cannot be created!", e);
        }
        return dataSource;
    }
 
    private Properties hibernateProperties() {
        Properties hibernateProp = new Properties();
        hibernateProp.put("hibernate.dialect", "org.hibernate.dialect.MySQLDialect");
        hibernateProp.put("connection.driver_class", "com.mysql.jdbc.Driver");
        hibernateProp.put("hibernate.format_sql", true);
        hibernateProp.put("hibernate.use_sql_comments", true);
        hibernateProp.put("hibernate.show_sql", true);
        hibernateProp.put("hibernate.max_fetch_depth", 3);
        hibernateProp.put("hibernate.jdbc.batch_size", 10);
        hibernateProp.put("hibernate.jdbc.fetch_size", 50);
        
        return hibernateProp;
    }
 
    @Bean
    public SessionFactory sessionFactory() throws IOException {
        LocalSessionFactoryBean sessionFactoryBean = new LocalSessionFactoryBean();
        sessionFactoryBean.setDataSource(getDataSource());
        sessionFactoryBean.setPackagesToScan("entity","dao","service");
        sessionFactoryBean.afterPropertiesSet();
        sessionFactoryBean.setHibernateProperties(hibernateProperties());
        return sessionFactoryBean.getObject();
    }
 
    @Bean
    public PlatformTransactionManager transactionManager() throws IOException {
        HibernateTransactionManager transactionManager=new HibernateTransactionManager();
        transactionManager.setSessionFactory(sessionFactory());
        return transactionManager;
    }
 
}



Ещё Spring делает предупреждение, что не нравится мой конфигурационный файл Hibernate, не мэпит он его:
авторUnmapped spring configuration files: HibernateConfig.java

Первый раз использую Spring Boot, и точно не знаю, что я не верно сконфигурировал, что-то наверное в Hibernte, но что не знаю

В application.properties пробовал менять
Код: xml
1.
 spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver


на
Код: xml
1.
spring.datasource.driver-class-name=com.mysql.jdbc.Driver


Ошибка:
авторorg.springframework.web.util.NestedServletException: Request processing failed; nested exception is org.springframework.dao.DataAccessResourceFailureException: Could not create JPA EntityManager; nested exception is org.hibernate.service.spi.ServiceException: Unable to create requested service [org.hibernate.engine.jdbc.env.spi.JdbcEnvironment]
org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014)
org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)
javax.servlet.http.HttpServlet.service(HttpServlet.java:626)
org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)

Попробовал в pom.xml прописать текущею версию mysql-connector:
Код: xml
1.
2.
3.
4.
5.
<dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <scope>runtime</scope>
</dependency>


авторRequest processing failed; nested exception is org.springframework.dao.DataAccessResourceFailureException: Could not create JPA EntityManager; nested exception is org.hibernate.service.spi.ServiceException: Unable to create requested service [org.hibernate.engine.jdbc.env.spi.JdbcEnvironment]

Пробую менять mysql-connector в настройках подключения БД MySQL в IDEA: Test connection проходит, только тогда, когда ставлю mysql-connector 5.1.47 (класс - com.mysql.jdbc.Driver), а когда пытаюсь ставить коннектор версии выше (1-н из последних) 8.0.13 (класс -com.mysql.cj.jdbc.Driver) - Test connection не проходит.
...
Рейтинг: 0 / 0
14.10.2020, 08:41
    #40008322
Vlad__i__mir
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Spring не может загрузить драйвер mysql (com.mysql.cj.jdbc.Driver)
Может это быть связано с тем, что у меня open jdk стоят, а не oracle jdk?
...
Рейтинг: 0 / 0
15.10.2020, 09:30
    #40008721
mad_nazgul
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Spring не может загрузить драйвер mysql (com.mysql.cj.jdbc.Driver)
Vlad__i__mir
Может это быть связано с тем, что у меня open jdk стоят, а не oracle jdk?


Скорее всего нет.
Меня смущает этот бин. Нафиг он нужен?
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
@Bean
    public DataSource getDataSource() {
        DriverManagerDataSource dataSource = null;
        try {
            dataSource = new DriverManagerDataSource();
            dataSource.setDriverClassName("com.mysql.jdbc.Driver");
            dataSource.setUrl("jdbc:mysql://localhost:3306/db_users?useSSL=false");//"jdbc:mysql://localhost:3306/dbfastwater?useSSL=false"
            dataSource.setUsername("root");
            dataSource.setPassword("root");
        } catch (Exception e) {
            logger.error("MysqlDataSource bean cannot be created!", e);
        }
        return dataSource;
    }
...
Рейтинг: 0 / 0
15.10.2020, 11:10
    #40008770
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Spring не может загрузить драйвер mysql (com.mysql.cj.jdbc.Driver)
Vlad__i__mir,

видимость драйвера - тесно связана со способом упаковки артифакта. Посмотри сначала есть ли сам драйвер
внутри jar/ear/war сборки.
...
Рейтинг: 0 / 0
15.10.2020, 13:39
    #40008875
Vlad__i__mir
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Spring не может загрузить драйвер mysql (com.mysql.cj.jdbc.Driver)
mad_nazgul,
Ну этот бин чтобы настроить подключение Hibernate к БД, он возвращает уже настроенное подключение в метод sessionFactory() для создания сессии с БД
...
Рейтинг: 0 / 0
15.10.2020, 15:01
    #40008922
SpringMan
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Spring не может загрузить драйвер mysql (com.mysql.cj.jdbc.Driver)
У тебя какая-то адская смесь из разных версий mysql и разных способов настроек spring-а
Удали все лишнее и начни отсюда: tutorial . Если у тебя бут, то тебе не надо никаких бинов в HibernateConfig (во всяком случае на текущем этапе "запустить хоть как-нибудь")
...
Рейтинг: 0 / 0
15.10.2020, 16:01
    #40008965
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Spring не может загрузить драйвер mysql (com.mysql.cj.jdbc.Driver)
Дайте автору ссылку на минималистичный SpringBoot проект с поддержкой SpringDataJPA + его (автора) драйвер
...
Рейтинг: 0 / 0
15.10.2020, 16:09
    #40008969
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Spring не может загрузить драйвер mysql (com.mysql.cj.jdbc.Driver)
Ай красава.
...
Рейтинг: 0 / 0
15.10.2020, 18:09
    #40009020
Vlad__i__mir
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Spring не может загрузить драйвер mysql (com.mysql.cj.jdbc.Driver)
Zzz79, Спасибо!

Но у меня как у человека впервые пользующегося Sping Boot возникает законный вопрос:
как не имея бина со свойствами Hibernate создать бин сессии для проведения операций чтения, записи, ...?
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
@Bean
    public SessionFactory sessionFactory() throws IOException {
        LocalSessionFactoryBean sessionFactoryBean = new LocalSessionFactoryBean();
        sessionFactoryBean.setDataSource(getDataSource());
        sessionFactoryBean.setPackagesToScan("entity","dao","service");
        sessionFactoryBean.afterPropertiesSet();
        sessionFactoryBean.setHibernateProperties(hibernateProperties());
        return sessionFactoryBean.getObject();
    }
...
Рейтинг: 0 / 0
16.10.2020, 08:53
    #40009120
mad_nazgul
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Spring не может загрузить драйвер mysql (com.mysql.cj.jdbc.Driver)
Vlad__i__mir,

Либо научиться не думать.
Либо таки почитать документацию.

Для создания простейшего приложения для работы с БД на SpringBoot, думать не нужно.

Даже в файле конфигурации не нужно создавать бины.

(Примеры на Kotlin)
А нужно написать аннотации

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
@Configuration
@EnableJpaRepositories(
        basePackages = ["my.cool.project.repository"],

)
@EntityScan
open class RepositoryConfig {
}



Создать @Entity,
Создать для них интерфейсы-repository

Создать настройки к БД
application.yaml
Код: python
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
spring:
  datasource:
    driver-class-name: драйвер БД
    username: user
    password: password
    url: строка JDBC для подключения к БД
  jpa:
    hibernate:
      ddl-auto: none
    properties:
      hibernate:
        dialect: класс диалекта БД
        format_sql: true



Ну и в сервисном слое их использовать

Все остальные бины, настройки и прочие SpringBoot создаст сам.

Как бы это "фишка" SpringBoot, что почти весь инфраструктурный код уже написан.
Остается только объявить, что хочешь его использовать.
В самом простом случае хватает добавления зависимости.
Например как spring-actuator.
...
Рейтинг: 0 / 0
17.10.2020, 13:17
    #40009432
Vlad__i__mir
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Spring не может загрузить драйвер mysql (com.mysql.cj.jdbc.Driver)
mad_nazgul, Zzz79, спасибо большое! А то я вспомнил свой проект 1,5 годичной давности, который без Boot писал и начал как в пршлый раз все конфигурировать.
А тут оказывается технологии шагнули далеко вперед! :))
...
Рейтинг: 0 / 0
19.10.2020, 08:14
    #40009693
mad_nazgul
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Spring не может загрузить драйвер mysql (com.mysql.cj.jdbc.Driver)
Vlad__i__mir
mad_nazgul, Zzz79, спасибо большое! А то я вспомнил свой проект 1,5 годичной давности, который без Boot писал и начал как в пршлый раз все конфигурировать.
А тут оказывается технологии шагнули далеко вперед! :))


Блин. Я spring boot ковырял с 2016 года.
Там уже почти всё это было.

Сейчас они продвигают реактивное программирование и R2DBC в частности.
Так что скоро будет весело :-)
...
Рейтинг: 0 / 0
27.10.2020, 21:56
    #40012378
Vlad__i__mir
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Spring не может загрузить драйвер mysql (com.mysql.cj.jdbc.Driver)
mad_nazgul
Vlad__i__mir
mad_nazgul, Zzz79, спасибо большое! А то я вспомнил свой проект 1,5 годичной давности, который без Boot писал и начал как в пршлый раз все конфигурировать.
А тут оказывается технологии шагнули далеко вперед! :))


Блин. Я spring boot ковырял с 2016 года.
Там уже почти всё это было.

Сейчас они продвигают реактивное программирование и R2DBC в частности.
Так что скоро будет весело :-)


Знаю что он уже давно есть, но делал без него. Тогда только начинал писать на Java поэтому всё сразу не рассматривал
...
Рейтинг: 0 / 0
27.10.2020, 22:10
    #40012382
Vlad__i__mir
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Spring не может загрузить драйвер mysql (com.mysql.cj.jdbc.Driver)
mad_nazgul, может вы знаете в чем здесь проблема https://www.sql.ru/forum/1330295/data-jpa-ne-vidit-tablicy-bazy-dannyh
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Spring не может загрузить драйвер mysql (com.mysql.cj.jdbc.Driver) / 14 сообщений из 14, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]