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

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
Spring не может загрузить драйвер mysql (com.mysql.cj.jdbc.Driver)
    #40008322
Vlad__i__mir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Может это быть связано с тем, что у меня open jdk стоят, а не oracle jdk?
...
Рейтинг: 0 / 0
Spring не может загрузить драйвер mysql (com.mysql.cj.jdbc.Driver)
    #40008721
mad_nazgul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
Spring не может загрузить драйвер mysql (com.mysql.cj.jdbc.Driver)
    #40008770
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vlad__i__mir,

видимость драйвера - тесно связана со способом упаковки артифакта. Посмотри сначала есть ли сам драйвер
внутри jar/ear/war сборки.
...
Рейтинг: 0 / 0
Spring не может загрузить драйвер mysql (com.mysql.cj.jdbc.Driver)
    #40008875
Vlad__i__mir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
mad_nazgul,
Ну этот бин чтобы настроить подключение Hibernate к БД, он возвращает уже настроенное подключение в метод sessionFactory() для создания сессии с БД
...
Рейтинг: 0 / 0
Spring не может загрузить драйвер mysql (com.mysql.cj.jdbc.Driver)
    #40008922
SpringMan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
У тебя какая-то адская смесь из разных версий mysql и разных способов настроек spring-а
Удали все лишнее и начни отсюда: tutorial . Если у тебя бут, то тебе не надо никаких бинов в HibernateConfig (во всяком случае на текущем этапе "запустить хоть как-нибудь")
...
Рейтинг: 0 / 0
Spring не может загрузить драйвер mysql (com.mysql.cj.jdbc.Driver)
    #40008965
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дайте автору ссылку на минималистичный SpringBoot проект с поддержкой SpringDataJPA + его (автора) драйвер
...
Рейтинг: 0 / 0
Spring не может загрузить драйвер mysql (com.mysql.cj.jdbc.Driver)
    #40008969
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ай красава.
...
Рейтинг: 0 / 0
Spring не может загрузить драйвер mysql (com.mysql.cj.jdbc.Driver)
    #40009020
Vlad__i__mir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
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
Spring не может загрузить драйвер mysql (com.mysql.cj.jdbc.Driver)
    #40009120
mad_nazgul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
Spring не может загрузить драйвер mysql (com.mysql.cj.jdbc.Driver)
    #40009432
Vlad__i__mir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
mad_nazgul, Zzz79, спасибо большое! А то я вспомнил свой проект 1,5 годичной давности, который без Boot писал и начал как в пршлый раз все конфигурировать.
А тут оказывается технологии шагнули далеко вперед! :))
...
Рейтинг: 0 / 0
Spring не может загрузить драйвер mysql (com.mysql.cj.jdbc.Driver)
    #40009693
mad_nazgul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vlad__i__mir
mad_nazgul, Zzz79, спасибо большое! А то я вспомнил свой проект 1,5 годичной давности, который без Boot писал и начал как в пршлый раз все конфигурировать.
А тут оказывается технологии шагнули далеко вперед! :))


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

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


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

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


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


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