Spring bean中用于sqlserver实例的JDBC连接url

时间:2017-03-03 12:55:09

标签: java sql-server spring

我正在使用

> 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.'.)

那里有任何线索吗?

感谢。

3 个答案:

答案 0 :(得分:0)

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

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

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

答案 1 :(得分:0)

连接或用户或密码或驱动程序的网址错误,检查连接是否正常。

答案 2 :(得分:0)

我有很多尝试和错误。发现港口号码未被接受。最后我得到了这个配置非常好:

   <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>