Spring Boot выдает ошибку: URL-адрес должен начинаться с 'jdb c' - PullRequest
0 голосов
/ 11 июля 2020

Я пытаюсь настроить базу данных Postgres при весенней загрузке, используя конфигурацию аннотаций. У меня есть все учетные данные базы данных в файле с именем database.properties, а файл конфигурации называется DBconfig.java

database.url= jdbc:postgresql://localhost/mydb 
database.driverClassName= com.postgresql.jdbc.Driver
database.username= postgres
database.password= password

Файл dbConfig -

@Configuration
@PropertySource("classpath:databaseAccess/database.properties")

public class DBconfig {

  @Value("${username}")
  private String username;

  @Value("${password}")
  private String password;

  @Value("${url}")
  private String url;

  @Bean
  @Qualifier("postgresDB")
  public DataSource dataSource() {
    DataSourceBuilder dataSource = DataSourceBuilder.create();
    dataSource.url(url);
    dataSource.password(password);
    //dataSource.driverClassName(driverClassName);
    dataSource.username(username);
    return dataSource.build();
  }

  @Bean
  @Qualifier("jdbcTemplate")
  public JdbcTemplate jdbcTemplate() {
      return new JdbcTemplate(dataSource());
  }
}

Это мой основной файл

     @SpringBootApplication
     public class GetNotificationsApplication {

        public static void main(String[] args) {

           ApplicationContext ctx = new AnnotationConfigApplicationContext(DBconfig.class);
           JdbcTemplate template= ctx.getBean("jdbcTemplate", JdbcTemplate.class);
           template.execute("CREATE TABLE TEST( test VARCHAR(20))");

        }

     }

Я продолжаю получать ошибку Заводской метод dataSource вызвал исключение; вложенное исключение: java .lang.IllegalArgumentException: URL-адрес должен начинаться с 'jdb c'

1 Ответ

0 голосов
/ 11 июля 2020

Попробуйте изменить значение параметра url, указав номер порта для postgres. Предполагая, что postgres работает на 5432, который является портом по умолчанию.

Изменить

jdbc:postgresql://localhost/mydb

На

jdbc:postgresql://localhost:5432/mydb

Для проверки номера порта Найдите имя хоста и порт с помощью команд PSQL

ОБНОВЛЕНИЕ:

Также измените @Value("${username}") на @Value("${database.username}") и другие свойства с помощью префикса database.

...