JdbcTemplate выдает исключение

Я пытаюсь создать bean-компонент JdbcTemplate следующим образом:

@Configuration
public class ServiceBeanConfiguration {

    @Bean
    public JdbcTemplate jdbcTemplate() {
    DriverManagerDataSource driverManagerDataSource = new DriverManagerDataSource();
    driverManagerDataSource.setDriverClassName("org.postgresql.Driver");
    driverManagerDataSource.setUrl("jdbc:postgresql://localhost:5432/sp");
    driverManagerDataSource.setUsername("posthres");
    driverManagerDataSource.setPassword("password");

    DataSource dataSource = driverManagerDataSource;

    JdbcTemplate jdbcTemplate = new JdbcTemplate();
    jdbcTemplate.setDataSource(dataSource);
    return jdbcTemplate;
}

Я автоматически подключаю этот @Bean к своему классу обслуживания. Но в результате получаю ошибку:

**************************
APPLICATION FAILED TO START
***************************

Description:

Failed to configure a DataSource: 'url' attribute is not specified and no embedded datasource could be configured.

Reason: Failed to determine a suitable driver class


Action:

Consider the following:
    If you want an embedded database (H2, HSQL or Derby), please put it on the classpath.
    If you have database settings to be loaded from a particular profile you may need to activate it (no profiles are currently active).

у вас есть зависимость PostgreSQL в pom.xml?

Ganesh Gudghe 23.08.2018 14:41

Это приложение Springboot?

Himanshu Bhardwaj 23.08.2018 14:43

Я использую gradle, и у меня есть: compile group: 'org.postgresql', имя: 'postgresql', версия: '42 .2.4 '. Да, это приложение sprigboot

Hunteerq 23.08.2018 14:43

Попробуйте установить источник данных в файле .property и проверьте

Ganesh Gudghe 23.08.2018 14:45

Человек, спасибо тебе большое. Это помогло.

Hunteerq 23.08.2018 14:50

Но теперь я, когда контроллер должен запустить запрос и вернуть его. у меня есть

Hunteerq 23.08.2018 14:54

Вы можете разместить здесь свой файл .properties? И подробнее о своем новом выпуске?

Aditya Narayan Dixit 23.08.2018 15:09
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
7
78
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Создайте application.properties и поместите туда свойства spring.datasource.

spring.datasource.url=jdbc:postgresql://localhost:5432/sp
spring.datasource.username=postgres
spring.datasource.password=password

Удалите ваш ServiceBeanConfiguration и перезапустите приложение.

Spring Boot автоматически настроит DataSource и JdbcTemplate за вас.

Вы должны добавить зависимость базы данных в свой pom.xml.

Причина: не удалось определить подходящий класс драйвера.

Добавьте свою зависимость postgre или базу данных в памяти:

 <dependency>
    <groupId>postgresql</groupId>
    <artifactId>postgresql</artifactId>
    <version>9.1-901-1.jdbc4</version>
</dependency>

Если вы выберете использование базы данных postgre, создавать @bean нет необходимости. Создайте свойства приложения, как написал М. Дейнум.

spring.datasource.url=jdbc:postgresql://localhost:5432/sp
spring.datasource.username=postgres
spring.datasource.password=password

Если вы выберете вариант «В базе данных в памяти» Application.properties не потребуется (загрузка Spring настроит все за вас) -> не используйте этот подход в производственной среде.

   <groupId>com.h2database</groupId>
   <artifactId>h2</artifactId>
   <version>1.4.197</version>
   <scope>test</scope>

Другие вопросы по теме