【问题标题】:JDBC connection url in spring bean for sqlserver instance用于 sqlserver 实例的 Spring bean 中的 JDBC 连接 url
【发布时间】:2017-03-03 12:55:08
【问题描述】:

我正在使用

> org.apache.commons.dbcp2.BasicDataSource

第 4 版

`com.microsoft.sqlserver.jdbc.SQLServerDriver`

尝试连接到 2014 SqlServer。 我正在尝试连接到该服务器上运行的特定实例。 我无法确定此连接的正确网址。

这是我在 spring.xml 中的配置:

<context:component-scan base-package="com.securess.jdbc.jdbcsample"></context:component-scan>
       <bean id="dataSource" class="org.apache.commons.dbcp2.BasicDataSource">
            <property name="driverClassName" value="com.microsoft.sqlserver.jdbc.SQLServerDriver"/>
            <property name="url" value="jdbc:sqlserver://myhost\\\myinstance:myport;databasename=mydb"/>
            <property name="username" value="myadmin"/>
            <property name="password" value="mypwd"/>           
            <property name="initialSize" value="1"/>
            <property name="maxTotal" value="2"/>
       </bean>

我得到一个 SQLException:

org.springframework.jdbc.CannotGetJdbcConnectionException: 
Could not get JDBC Connection; nested exception is java.sql.SQLException: 
Cannot create PoolableConnectionFactory 
(Fehler beim Herstellen der TCP/IP-Verbindung mit dem Host 'hostname', Port portnumber. Fehler: 'Connection refused: connect. 
Überprüfen Sie die Verbindungseigenschaften. 
Stellen Sie sicher, dass eine SQL Server-Instanz auf dem Host ausgeführt wird und am Port TCP/IP-Verbindungen akzeptiert. 
Vergewissern Sie sich, dass am Port keine TCP-Verbindungen durch eine Firewall blockiert werden.'.)

有什么线索吗?

谢谢。

【问题讨论】:

  • 那么,您使用的是命名实例,对吧?
  • 嗨,Alfabravo,没错。

标签: java sql-server spring


【解决方案1】:

如果在字符串中使用 Backslah,则必须对其进行转义。

并且您必须提供一些身份验证信息。来自Klick me 的示例:

String dbURL = "jdbc:sqlserver://localhost\\sqlexpress;user=sa;password=secret";
Connection conn = DriverManager.getConnection(dbURL);

【讨论】:

  • 您好 Pastafari,我在 spring.xml 中提供了登录凭据。我还测试了掩蔽反斜杠。同样的错误。还有其他想法吗?
  • 你试过双反斜杠吗?
  • 嗨,是的,我也试过这个。我在我的问题中提供了有关我的 spring.xml 的详细信息。
【解决方案2】:

连接的url或者用户名或者密码或者驱动有问题,通过其他方式检查连接是否正常。

【讨论】:

    【解决方案3】:

    我有很多尝试和错误。发现端口号未被接受。最后我让这个配置工作得很好:

       <context:component-scan base-package="com.securess.jdbc.jdbcsample"></context:component-scan>
       <bean id="dataSource" class="org.apache.commons.dbcp2.BasicDataSource">
              <property name="driverClassName" value="com.microsoft.sqlserver.jdbc.SQLServerDriver"/>
              <property name="url" value="jdbc:sqlserver://myhost;instanceName=myinstance;databaseName=mydb"/>
          <property name="username" value="sa"/>
              <property name="password" value="mypwd"/>           
              <property name="initialSize" value="1"/>
              <property name="maxTotal" value="5"/>
       </bean>
    

    【讨论】:

      猜你喜欢
      • 2012-03-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-08-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-03-09
      相关资源
      最近更新 更多