【发布时间】:2020-04-05 03:03:06
【问题描述】:
我正在尝试使用休眠连接到 SQL Server,但出现此错误:
sourceId=null[severity=(错误2),summary=(无法创建请求的服务[org.hibernate.engine.jdbc.env.spi.JdbcEnvironment]),detail=(无法创建请求的服务[org. hibernate.engine.jdbc.env.spi.JdbcEnvironment])]
以下是我的persistence.xml
<provider>org.hibernate.jpa.HibernatePersistenceProvider</provider>
<properties>
<property name="javax.persistence.jdbc.url"
value="jdbc:jtds:sqlserver://localhost:1433/[databaseName]?createDatabaseIfNotExist=true&useSSl=false&autoReconnect=true"/>
<property name="javax.persistence.jdbc.user" value="***"/>
<property name="javax.persistence.jdbc.password" value="***"/>
<property name="javax.persistence.jdbc.driver" value="net.sourceforge.jtds.jdbc.Driver"/>
<property name="hibernate.dialect" value="org.hibernate.dialect.SQLServerDialect"/>
<property name="hibernate.show_sql" value="true"/>
<property name="hibernate.format_sql" value="true"/>
<property name="hibernate.hbm2ddl.auto" value="update"/>
</properties>
还有 pom.xml
<!-- https://mvnrepository.com/artifact/com.microsoft.sqlserver/mssql-jdbc -->
<dependency>
<groupId>com.microsoft.sqlserver</groupId>
<artifactId>mssql-jdbc</artifactId>
<version>6.1.0.jre8</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>net.sourceforge.jtds</groupId>
<artifactId>jtds</artifactId>
<version>1.2.4</version>
</dependency>
编辑
我将此依赖项添加到我的 pom 中
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
<version>5.4.0.Final</version>
</dependency>
现在错误消息已更改。
WARN: HHH000342: Could not obtain connection to query metadata : null
dez 12, 2019 10:40:37 AM org.hibernate.dialect.Dialect <init>
INFO: HHH000400: Using dialect: org.hibernate.dialect.SQLServerDialect
dez 12, 2019 10:40:37 AM org.hibernate.engine.jdbc.env.internal.LobCreatorBuilderImpl makeLobCreatorBuilder
INFO: HHH000422: Disabling contextual LOB creation as connection was null
dez 12, 2019 10:40:37 AM org.hibernate.engine.jdbc.spi.SqlExceptionHelper logExceptions
WARN: SQL Error: 0, SQLState: 08S01
dez 12, 2019 10:40:37 AM org.hibernate.engine.jdbc.spi.SqlExceptionHelper logExceptions
ERROR: Falha na conexão TCP/IP com o host xxx.xx.xx.xx/processos_corretivos?createDatabaseIfNotExist=true&useSSl=false&autoReconnect=true, porta 1433. Erro: "xxx.xx.xx.xx/processos_corretivos?createDatabaseIfNotExist=true&useSSl=false&autoReconnect=true. **Verifique as propriedades da conexão. Verifique se uma instância do SQL Server está sendo executada no host e se está aceitando conexões TCP/IP na porta. Verifique se as conexões TCP na porta não foram bloqueadas por um firewall**.".
检查连接属性。检查主机中是否有正在执行的 SQL Server 实例以及它是否接受 TPC/IP 连接。检查 TCP 连接是否未被防火墙阻止。
休眠只是与端口连接吗? 我可以在没有端口的情况下连接到 MSSMS 中的数据库,但是如果我使用端口,我将无法连接。
【问题讨论】:
-
根据SQL version compatibility,SQL Server 2017 至少需要 jdbc 6.2。根据上述,您使用的是 6.1。
-
我只是尝试了不同的版本。不幸的是,没有奏效。
-
您检查过您的用户名/密码是否正确吗?您与数据库的连接似乎无法正常工作。
标签: java sql-server hibernate maven