Проблема с подключением к базе данных Java Spring Boot JPA

Я работаю над приложением Java Spring Boot, и у меня возникла проблема с подключением к базе данных через JPA. JPA не может подключиться к моей базе данных. Я перепробовал множество конфигураций URL-адресов, но соединение не удалось, и появляется такое исключение:

java.lang.RuntimeException: Driver com.microsoft.sqlserver.jdbc.SQLServerDriver claims to not accept jdbcUrl

Я использую локальную базу данных Microsoft SQL Server. Вот моя конфигурация application.properties

spring.application.name=Two4H
server.port=8080

spring.datasource.url=jdbc:jtds:sqlserver://.\\MSSQLLocalDB\\Two4H;integratedSecurity=true;TrustServerCertificate=true

spring.datasource.driver-class-name=com.microsoft.sqlserver.jdbc.SQLServerDriver
spring.jpa.hibernate.ddl-auto=update
spring.jpa.show-sql=true
spring.jpa.properties.hibernate.format_sql=true
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.SQLServerDialect

И это мое соединение с БД в IntelliJ, которое я хотел бы подключить к своему приложению:

Что вы подразумеваете под «не работает»? Что происходит ? Любая ошибка?

Pradeep Simha 05.07.2024 11:13

«Успех» ярко-зелеными буквами очень противоречит утверждению «IntelliJ не может подключиться к моей базе данных». Это явно может. Вы, вероятно, имеете в виду, что ваше приложение Spring Boot не может этого сделать. URL-адрес JDBC в конфигурации IntelliJ сильно отличается от URL-адреса в файле application.properties.

Gimby 05.07.2024 11:21

Да, вы правы, мне следует быть точнее. IntelliJ может подключиться к этой базе данных, а JPA — нет. Раньше я пробовал разные URL-адреса (также такие же, как на вкладке подключения), но это не удалось. В консоли у меня есть это исключение: Драйвер com.microsoft.sqlserver.jdbc.SQLServerDriver утверждает, что не принимает jdbcUrl, jdbc:jtds:sqlserver://.\MSSQLLocalDB\Two4H;integratedSecurit‌​y=true;TrustServerCe‌​rtificate=true

koszatree 05.07.2024 11:30

Можете ли вы попробовать использовать следующее свойство? spring.datasource.url=jdbc:sqlserver://(localdb)\\MSSQLLocal‌​DB;database=Two4H;in‌​tegratedSecurity=tru‌​e;TrustServerCertifi‌​cate=true или spring.datasource.url=jdbc:jtds:sqlserver://(localdb)/MSSQLL‌​ocalDB;databaseName=‌​Two4H;integratedSecu‌​rity=true;TrustServe‌​rCertificate=true

Matt 05.07.2024 12:09

Я попробовал, но все еще есть проблемы с этим соединением. У меня есть это исключение на вкладке подключения: [08S01] Не удалось подключиться к хосту (localdb) с именем экземпляра mssqllocaldb. Ошибка: «java.net.UnknownHostException: (localdb)»

koszatree 05.07.2024 14:21
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
2
5
62
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Для SQL-сервера URL-адрес и класс драйвера должны быть

spring.datasource.url=jdbc:sqlserver://MSSQLLocalDB:1433;database=Two4H;integratedSecurity=true;TrustServerCertificate=true
spring.datasource.driverClassName=com.microsoft.sqlserver.jdbc.SQLServerDriver

Я использую эти драйверы, но этот URL вызывает ошибку: [08S01] The TCP/IP connection to the host MSSQLLocalDB, port 1433 has failed.

koszatree 06.07.2024 10:38

Чтобы исправить эту ошибку, запустите диспетчер конфигурации SQL Server, на правой панели разверните сетевую конфигурацию SQL и нажмите «Протоколы». Убедитесь, что TCP/IP включен. Если он по-прежнему не работает, дважды щелкните по нему и перейдите на вкладку «IP-адреса». Измените все значения TCP-порта на 1433. Затем перейдите в Службы SQL на левой панели и перезапустите SQL-сервер.

Amal Sebastian 06.07.2024 15:12
Ответ принят как подходящий

Я исправил эту проблему. Сначала я использую диспетчер конфигурации SQL Server 2022, чтобы установить новый локальный SQL-сервер и настроить его протокол TCP/IP. Затем я просто меняю URL-адрес в файле application.properties Spring Boot на: spring.datasource.url=jdbc:sqlserver://localhost:1433;database=Two4H;integratedSecurity=true;TrustServerCertificate=true. Вот хорошая статья, которую я нашел https://springframework.guru/configuring-spring-boot-for-microsoft-sql-server

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