使用spring框架连接到mssql服务器

Posted

技术标签:

【中文标题】使用spring框架连接到mssql服务器【英文标题】:Connection to mssql server using spring framework 【发布时间】:2015-11-02 14:29:15 【问题描述】:

我现在正在学习spring。我想将我的 webapp 连接到 ms sql 2008 R2 服务器。但我这样做有很多错误。 我的 bean 文件看起来像这样,

<bean id="dataSource"
        class="org.springframework.jdbc.datasource.DriverManagerDataSource">
        <property name="driverClassName" value="com.microsoft.sqlserver.jdbc.SQLServerDriver" />
        <property name="url"
            value="jdbc:sqlserver://Mrunal-PC\\MSSQLSERVER1;DataBaseName=Test;" />
        <property name="username" value="sa" />
        <property name="password" value="abc123" />
    </bean>

我得到以下异常。

Exception in thread "main" java.util.regex.PatternSyntaxException: Illegal/unsupported escape sequence near index 1
\mssqlserver1
 ^
    at java.util.regex.Pattern.error(Unknown Source)
    at java.util.regex.Pattern.escape(Unknown Source)
    at java.util.regex.Pattern.atom(Unknown Source)
    at java.util.regex.Pattern.sequence(Unknown Source)
    at java.util.regex.Pattern.expr(Unknown Source)
    at java.util.regex.Pattern.compile(Unknown Source)
    at java.util.regex.Pattern.<init>(Unknown Source)
    at java.util.regex.Pattern.compile(Unknown Source)
    at java.lang.String.replaceAll(Unknown Source)
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.getInstancePort(Unknown Source)
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(Unknown Source)
    at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(Unknown Source)
    at java.sql.DriverManager.getConnection(Unknown Source)
    at java.sql.DriverManager.getConnection(Unknown Source)
    at org.springframework.jdbc.datasource.DriverManagerDataSource.getConnectionFromDriverManager(DriverManagerDataSource.java:153)
    at org.springframework.jdbc.datasource.DriverManagerDataSource.getConnectionFromDriver(DriverManagerDataSource.java:144)
    at org.springframework.jdbc.datasource.AbstractDriverBasedDataSource.getConnectionFromDriver(AbstractDriverBasedDataSource.java:155)
    at org.springframework.jdbc.datasource.AbstractDriverBasedDataSource.getConnection(AbstractDriverBasedDataSource.java:120)
    at org.springframework.jdbc.datasource.DataSourceUtils.doGetConnection(DataSourceUtils.java:111)
    at org.springframework.jdbc.datasource.DataSourceUtils.getConnection(DataSourceUtils.java:77)
    at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:630)
    at org.springframework.jdbc.core.JdbcTemplate.update(JdbcTemplate.java:909)
    at org.springframework.jdbc.core.JdbcTemplate.update(JdbcTemplate.java:970)
    at org.springframework.jdbc.core.JdbcTemplate.update(JdbcTemplate.java:980)
    at com.tutorialspoint.StudentJDBCTemplate.create(StudentJDBCTemplate.java:19)
    at com.tutorialspoint.MainApp.main(MainApp.java:18)

erliear 我试图使用窗口身份验证进行连接,但即使在那个时候它也给了我超时错误。我在这里真的很新,所以我找不到任何错误。谁能帮帮我?

【问题讨论】:

改用\\\\ 谢谢。我马上试试。 如果我使用 \\\ 那么它会给我以下错误。 线程“主”org.springframework.jdbc.CannotGetJdbcConnectionException 中的异常:无法获取 JDBC 连接;嵌套异常是 com.microsoft.sqlserver.jdbc.SQLServerException:与命名实例的连接失败。错误:java.net.SocketTimeoutException:接收超时。在 org.springframework.jdbc.datasource.DataSourceUtils.getConnection(DataSourceUtils.java:80) 【参考方案1】:

试试jdbc:sqlserver://localhost;DataBaseName=Test。 在MSDN查看更多关于正确jdbc url的信息

【讨论】:

现在它给主机的 TCP/IP 连接失败。 java.net.ConnectException:连接被拒绝:连接 您的服务器是否在默认端口上运行?它是否在您运行 Spring 应用程序的同一台机器上运行? 它在同一台机器上运行。我在 sql 配置管理器中启用了 tcp 连接,并在 ip 部分中将端口称为 1433。它仍然无法正常工作 我尝试使用 eclips ide 连接到我的数据库,但它无法正常工作。连接 url 是 jdbc:sqlserver://localhost:1433;databaseName=Test

以上是关于使用spring框架连接到mssql服务器的主要内容,如果未能解决你的问题,请参考以下文章

远程连接到 MSSQL,使用 Windows 身份验证,JAVA

msSQL jdbc .. 我连接到服务器但如何连接到使用特定的 databaseName

如何使用纯 JavaScript 连接到 MSSQL

python ubuntu使用pyodbc连接到mssql服务器

使用 Azure Active Directory 连接到 MSSQL 服务器的 JDBC

如果我们保持空闲一段时间,则在连接到 Azure MSSQL DB 时,Spring Boot 应用程序中的数据库连接将关闭