异常提示
2021-10-26 15:46:20.137 INFO 6656 --- [ main] e.d.AndroidJavaSqlserverApplicationTests : Starting AndroidJavaSqlserverApplicationTests using Java 1.8.0_312 on SH5003147002 with PID 6656 (started by chaotian in C:\workspaces\IDEA\android-java-sqlserver)
2021-10-26 15:46:20.140 INFO 6656 --- [ main] e.d.AndroidJavaSqlserverApplicationTests : No active profile set, falling back to default profiles: default
2021-10-26 15:46:21.315 WARN 6656 --- [ main] o.m.s.mapper.ClassPathMapperScanner : No MyBatis mapper was found in '[com.example.demo]' package. Please check your configuration.
2021-10-26 15:46:21.795 ERROR 6656 --- [ main] c.a.druid.pool.DruidAbstractDataSource : maxIdle is deprecated
2021-10-26 15:46:23.055 INFO 6656 --- [ main] e.d.AndroidJavaSqlserverApplicationTests : Started AndroidJavaSqlserverApplicationTests in 3.493 seconds (JVM running for 4.872)
class com.alibaba.druid.pool.DruidDataSource
2021-10-26 15:46:23.539 INFO 6656 --- [ main] com.alibaba.druid.pool.DruidDataSource : {dataSource-1} inited
2021-10-26 15:46:23.793 ERROR 6656 --- [eate-1058686869] com.alibaba.druid.pool.DruidDataSource : create connection SQLException, url: jdbc:sqlserver://localhost:1433;DatabaseName=student, errorCode 0, state null
java.sql.SQLException: validateConnection false
at com.alibaba.druid.pool.DruidAbstractDataSource.validateConnection(DruidAbstractDataSource.java:1418) ~[druid-1.2.8.jar:1.2.8]
at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1733) ~[druid-1.2.8.jar:1.2.8]
at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2838) ~[druid-1.2.8.jar:1.2.8]
Caused by: java.lang.NullPointerException: null
at com.microsoft.sqlserver.jdbc.SQLServerStatement.ensureSQLSyntax(SQLServerStatement.java:778) ~[mssql-jdbc-9.2.1.jre8.jar:na]
at com.microsoft.sqlserver.jdbc.SQLServerStatement.doExecuteStatement(SQLServerStatement.java:822) ~[mssql-jdbc-9.2.1.jre8.jar:na]
at com.microsoft.sqlserver.jdbc.SQLServerStatement$StmtExecCmd.doExecute(SQLServerStatement.java:767) ~[mssql-jdbc-9.2.1.jre8.jar:na]
at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7418) ~[mssql-jdbc-9.2.1.jre8.jar:na]
at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:3272) ~[mssql-jdbc-9.2.1.jre8.jar:na]
at com.microsoft.sqlserver.jdbc.SQLServerStatement.executeCommand(SQLServerStatement.java:247) ~[mssql-jdbc-9.2.1.jre8.jar:na]
at com.microsoft.sqlserver.jdbc.SQLServerStatement.executeStatement(SQLServerStatement.java:222) ~[mssql-jdbc-9.2.1.jre8.jar:na]
at com.microsoft.sqlserver.jdbc.SQLServerStatement.execute(SQLServerStatement.java:743) ~[mssql-jdbc-9.2.1.jre8.jar:na]
at com.alibaba.druid.pool.vendor.MSSQLValidConnectionChecker.isValidConnection(MSSQLValidConnectionChecker.java:50) ~[druid-1.2.8.jar:1.2.8]
at com.alibaba.druid.pool.DruidAbstractDataSource.validateConnection(DruidAbstractDataSource.java:1398) ~[druid-1.2.8.jar:1.2.8]
... 2 common frames omitted
出现场景: springboot + druid + sqlserver

在执行以下测试的时候就会报错

原因:druid的版本问题,具体未知
解决办法:修改druid的版本

可以看到druid的版本已经到了1.2.8.而我就是用的这个版本才报的错。在网上找的方法都是让改到1.1.10,经测试确实是可以。通过对每一个版本的测试,1.2.5版本是可以解决问题的,版本再新就不行了。

如图,改了druid的版本后这条路已经通了

在SpringBoot项目中使用Druid数据源连接SQLServer时遇到异常,错误信息涉及`NoMyBatisMapperScanner`、`DruidDataSource.maxIdle`废弃警告以及`java.sql.SQLException: validateConnection false`。问题根源可能是Druid版本不兼容。通过逐步回退Druid版本,发现1.2.5可以解决问题,而1.2.8及更高版本存在该问题。解决方案是将Druid版本降低到1.2.5或更低来避免异常。
1万+





