【问题标题】:Connect to SQL Server 2017 using hibernate使用休眠连接到 SQL Server 2017
【发布时间】: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&amp;useSSl=false&amp;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


【解决方案1】:

我通过更改网址修复了它。

<property name="javax.persistence.jdbc.url"
                      value="jdbc:sqlserver://xxx.xx.xx.xx;databaseName=processos_corretivos"/>

【讨论】:

    猜你喜欢
    • 2012-03-26
    • 2011-08-20
    • 1970-01-01
    • 1970-01-01
    • 2021-05-06
    • 2016-05-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多