SpringBoot如何正确连接SqlServer(亲测可用)

前言:

在最近配置SqlServer的连接当中,整体感觉和之前配置MySQL和Oracle数据库的区别有点大,遇到了很多的问题,这里把踩坑的记录总结一下。

目录

一、正确的配置方式

二、常见问题

1、驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立安全连接

2、对象名 'DUAL' 无效

三、总结


一、正确的配置方式

maven依赖



    net.sourceforge.jtds
    jtds
    1.3.1

application.yml

spring:
  datasource:
    driverClassName: net.sourceforge.jtds.jdbc.Driver
    url: jdbc:jtds:sqlserver://ip地址:端口号;database=数据库名字
    username: 账号
    password: 密码

二、常见问题

1、驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立安全连接

详细报错:

nested exception is org.apache.ibatis.exceptions.PersistenceException: ### Error querying database. Cause: org.springframework.jdbc.CannotGetJdbcConnectionException: Failed to obtain JDBC Connection; nested exception is com.microsoft.sqlserver.jdbc.SQLServerException: 驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立安全连接。错误:“The server selected protocol version TLS10 is not accepted by client preferences [TLS12]”。 ClientConnectionId:91ed7412-600a-4739-b527-1c083c3aa53e ### The error may exist in com/ruoyi/project/oldoa/mapper/NewsMapper.java (best guess) ### The error may involve com.ruoyi.project.oldoa.mapper.NewsMapper.selectList ### The error occurred while executing a query ### Cause: org.springframework.jdbc.CannotGetJdbcConnectionException: Failed to obtain JDBC Connection; nested exception is com.microsoft.sqlserver.jdbc.SQLServerException: 驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立安全连接。错误:“The server selected protocol version TLS10 is not accepted by client preferences [TLS12]”。 ClientConnectionId:91ed7412-600a-4739-b527-1c083c3aa53e

大概率因为使用了如下配置,看了网上很多解决方式,总之最终都不能正常连接,所以这种连接方式直接弃用了。

maven依赖


    com.microsoft.sqlserver
    sqljdbc4
    4.0

application.yml

spring:
  datasource:
    driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver
    url: jdbc:sqlserver://ip地址:端口号;database=数据库名字
    username: 账号
    password: 密码

2、对象名 'DUAL' 无效

详细报错:

com.microsoft.sqlserver.jdbc.SQLServerException: 对象名 ‘DUAL‘ 无效。

你应该使用了RuoYi的框架,全局搜索一下

validationQuery: SELECT 1 FROM DUAL

改成

validationQuery: SELECT 1

因为SQL server 没有对象DUAL,也就是这个语句在SQL server下面是不能运行的,所以报错了。

三、总结

以上就是我目前对于SpringBoot连接SqlServer的方式和常见的错误的汇总。

你可能感兴趣的:(SqlServer,SpringBoot,sqlserver,spring,boot,数据库,后端,java)