异常:com.alibaba.druid.pool.DruidDataSource : create connection SQLException, url: jdbc:sqlserver://

异常提示

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的版本后这条路已经通了

参考:java.sql.SQLException: validateConnection false 

  • 6
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
数据库库表设计命名规范 引言 目前航运系统产品中的部分数据库表命名上存在不规范的情形,为进一步规范系统开 发过程中数据表、字段等实体的命名,特制定本规范要求在后续新增表、字段时,需要 严格按照本规范执行。 表名命名规则 1. 数据库表名称以"所属子系统简称"+"所属模块简称"打头,如"SH_CP_CARGO",表示此 数据表为航运子系统合同管理模块的合同货载表; "子系统简称 "备注说明 "模块简称 "备注说明 " "SH "航运子系统 "BGT "预算管理 " " "  " " " " " "INF "市场信息 " " " "EST "航次估算 " " " "CP "合同管理 " " " "VYG "航次任务 " " " "AMI "船舶报文 " " " "CML "商务核算 " " " "STA "统计报表 " " " "PI "保险理赔 " " " "FI "财务接口 " " " "BASE "基础代码 " " " "FM "文件管理 " "XT "系统基础平 "  "  " " "台 " " " 子系统及模块简称 2. 数据库表名按英文(而不是汉语拼音)进行取名,尽量用全名,如果表名由几个单词 组成,则单词间用下划线("_")分割,如SH_BASE_BANK等 ; 3. 表名限制在30个字符内。当表的全名超过30字符时,可用缩写来减少表名的长度,如 SH_CP_OIL_INFO等 ; 4. 关连表命名规则为 表A_Re _表B,RE是Relative的缩写,如: SH_CP_USER_RE_ SH_CP_FORM。 表字段名命名规则 1. 字段名为有意义的单词,或单词的缩写 ; 2. 如果字段由几个单词组成,则单词间用下划线("_")分割,如client_id,post_cod e等 ; 3. 字段名限制在30个字符内。当字段名超过30字符时,可用缩写来减少字段名的长度, 如description --> desc;information --> info;address --> addr等 ; 4. 对于数据表之间关联冗余的字段,需要与源数据表中的字段类型、长度保持一致,如 :船舶信息表中有"船舶编号VESSEL_CD"字段,在合同、航次任务等相应的业务表 中都会冗余"船舶编号VESSEL_CD",此时合同、航次任务表中的船舶编号字段需要 保持与船舶信息表一致; 5. 对于数值型字段类型,精确一般建议如下: 1) 表示金额数据时,最少需要精确到小数点5位 ,字段类型设置如:NUMBER(10,5); 2) 表示百分比数值时,最少需要精确到小数点后5位,字段类型设置如:NUMBER(1 0,5),表示数值时为97.872%; 6. 对于时间日期类字段时,一般约定如下: 1) 只需要记录到年月日时,字段名称中用"DATE"标识,字段类型设置为DATE,如CR EATE_DATE; 2) 需要记录到年月日以及时间时,字段名称中用"TIME"标识,字段类型设置为TIM ESTAMP,如PAY_TIME。 7. 对于字符串类字段,一般约定如下: 1) 字段的数据量在4000英文字符以内的(一个汉字两个英文字符),字段数据类型 采用VARCHAR2(XX),字段长度根据实际情况设置; 2) 字段的数据量在4000英文字符以上的,字段数据类型采用CLOB。 索引命名规则 1. 索引须按照IDX_table_<table>_<column>,其中<table>是建立索引的表名,<colum n>是建立索引的字段名 ; 2. 索引名限制在30个字符内,当索引名超过30字符时,可用缩写来减少索引名的长度, 如description --> desc;information --> info;address --> addr等 。 主建、外键命名规则 1. 主键按照PK_<table>的规则命名,其中<table>为数据库表名,如:PK_SH_ACCIDEN T; 2. 唯一键按照UK_<table>_<column>的规则命名,其中<table>为数据块表名,<colum n>为字段名 ; 3. 外键按照FK_<pppp>_<cccc>_<nn>的规则命名,其中<pppp>为父表名,<cccc>为子表 名,<nn>为序列号 。 注释 1. 表名必须加注释。 2. 字段名必须加注释。 ----------------------- 数据库表设计命名规范全文共3页,当前为第1页。 数据库表设计命名规范全文共3页,当前为第2页。 数据库表设计命名规范全文共3页,当前为第3页。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值