依赖版本
com.alibaba druid-spring-boot-starter 1.2.6
sqlserver驱动版本
com.microsoft.sqlserver sqljdbc4 4.0
2021-05-13 16:57:55.328ERROR 2772 ---[eate-1931723660] com.alibaba.druid.pool.DruidDataSource :create connection SQLException, url: jdbc:sqlserver://172.28.168.172:1533;databaseName=basic_paper, errorCode 0, state null
java.sql.SQLException: validateConnection false at com.alibaba.druid.pool.DruidAbstractDataSource.validateConnection(DruidAbstractDataSource.java:1418) at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1733) at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2801) Caused by: java.lang.NullPointerException: null at com.microsoft.sqlserver.jdbc.SQLServerStatement.ensureSQLSyntax(SQLServerStatement.java:702) at com.microsoft.sqlserver.jdbc.SQLServerStatement.doExecuteStatement(SQLServerStatement.java:728) at com.microsoft.sqlserver.jdbc.SQLServerStatement$StmtExecCmd.doExecute(SQLServerStatement.java:689) at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:5696) at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:1715) at com.microsoft.sqlserver.jdbc.SQLServerStatement.executeCommand(SQLServerStatement.java:180) at com.microsoft.sqlserver.jdbc.SQLServerStatement.executeStatement(SQLServerStatement.java:155) at com.microsoft.sqlserver.jdbc.SQLServerStatement.execute(SQLServerStatement.java:662) at com.alibaba.druid.pool.vendor.MSSQLValidConnectionChecker.isValidConnection(MSSQLValidConnectionChecker.java:50) at com.alibaba.druid.pool.DruidAbstractDataSource.validateConnection(DruidAbstractDataSource.java:1398) ... 2 common frames omitted
原提问者GitHub用户WangJincheng4869
这个异常通常表示数据库连接验证失败,可能是由于以下原因之一:
数据库连接配置错误。在连接 SQL Server 数据库时,需要正确配置数据库连接字符串、用户名、密码等信息。可能是由于这些信息配置错误或者不完整导致连接验证失败。建议检查数据库连接配置是否正确,并进行相应的修正和优化。
数据库连接权限问题。在连接 SQL Server 数据库时,需要使用具有足够权限的数据库用户。可能是由于当前连接的数据库用户没有足够的权限访问数据库导致连接验证失败。建议检查数据库用户权限是否正确,并进行相应的授权和配置。
数据库连接中断。在连接 SQL Server 数据库时,可能会出现网络中断、超时等问题,导致连接验证失败。建议检查网络是否通畅,数据库服务器是否正常运行等,以确保能够正常访问数据库。
这个错误是由于SQL Server JDBC驱动程序中的一个空指针异常导致的。这个错误通常发生在使用Druid连接池连接SQL Server数据库时。根据错误信息,可以看到SQL Server JDBC驱动程序在执行SQL语句时发生了空指针异常。这可能是由于SQL语句中存在语法错误或者数据库连接池中的连接已经被占用等原因导致的。
检查SQL语句是否正确,确保没有语法错误或者逻辑错误。
检查数据库连接池中的连接是否已经被占用,如果是,可以尝试释放一些连接来解决问题。
尝试升级SQL Server JDBC驱动程序版本,有时候驱动程序的版本也可能会导致一些问题。
如果以上方法都无法解决问题,可以尝试使用其他连接池来连接SQL Server数据库,比如Apache Commons DBUtils或者Spring JDBC连接池等。
加入以下配置即可解决!
spring.datasource.druid.validation-query=select 'x'
spring.datasource.druid.test-on-borrow=false
原回答者GitHub用户WangJincheng4869
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。