SQL Server问题记录
问题
DataGrip连接SQL Server
连接SQL Server失败,默认使用的驱动是sqljdbc4:
结果报错信息如下:
[08S01] 驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立安全连接。错误:“The server selected protocol version TLS10 is not accepted by client preferences [TLS13, TLS12]”。
javax.net.ssl.SSLHandshakeException: The server selected protocol version TLS10 is not accepted by client preferences [TLS13, TLS12].
参考DataGrip连接SQL Server,提示驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server建立安全连接的解决方法
结果使用Microsoft SQL Server(jTds)之后,报错信息如下:
[08S01] Network error IOException: The server selected protocol version TLS10 is not accepted by client preferences [TLS13, TLS12]
javax.net.ssl.SSLHandshakeException: The server selected protocol version TLS10 is not accepted by client preferences [TLS13, TLS12].
参考解决方法。
新建文件custom.java.security
,内容如下:
jdk.tls.disabledAlgorithms=SSLv3, TLSv1.1, RC4, DES, MD5withRSA, \
DH keySize < 1024, EC keySize < 224, 3DES_EDE_CBC, anon, NULL, \
include jdk.disabled.namedCurves
选中数据库,右键属性,点击高级,在VM options里面增加如下内容:
-Djava.security.properties=C:\Users\<awesome_me>\Downloads\custom.java.security
然后重新点击Test Connection,如果不行,请清除DataGrip缓存重启:Invalidate Caches,然后Invalidate And Restart。
事实上,这个报错,对于其他数据源也是适用的。
SQLServerException: 语句被终止。完成执行语句前已用完最大递归100
SQL语句中有递归查询,要么是递归次数过大,要么进入递归死循环。检查SQL语句。
服务器范围的默认值为 100。如果指定 0,则没有限制。
SQLServerException: A result set was generated for update
报错信息:java.lang.Exception: com.microsoft.sqlserver.jdbc.SQLServerException: A result set was generated for update.
解决方法:
private void dealExecuteWithDbType(String sql, String driver, Statement stat) throws SQLException {
if (driver.equals(DbDriverTypeEnum.SQLSERVER.getDbDriverType())) {
// SQL Server特殊处理:SQLServerException: A result set was generated for update.
stat.executeQuery(sql);
} else {
stat.executeUpdate(sql);
}
}
SQLServerException: The statement did not return a result set.
报错信息:java.lang.Exception: com.microsoft.sqlserver.jdbc.SQLServerException: The statement did not return a result set.
解决方法:把stat.executeQuery(sql);
改成stat.execute(sql);
Error encountered when performing Introspect database master: 不支持“variant”数据类型
在使用Intellij IDEA或者DataGrip连接SQL Server数据源报错。
解决方案:勾选Introspect using JDBC metadata
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix