记录对JDBC常用操作代码块进行工具类封装时遇到的一些小问题与解决方案

一、NoClassDefFoundError错误

首先,本工具类主要是将使用JDBC对数据库进行操作的一些常用操作封装起来,以便更好地重用,比如注册驱动,建立数据库连接和关闭资源等等,但是在使用Junit测试时,却发生了一个错误:java.lang.NoClassDefFoundError: Could not initialize class XXX.XXX.XXX,在对该错误信息进行分析后,可知道不是编译错误,而是由于在运行时无法正确加载类有关,想了一下类加载的过程,包括加载、链接、验证、初始化等等过程,最初猜测是初始化不正确的问题,最终经过排查,确实是由于本工具类的静态代码块在对静态属性进行操作时存在一个会导致异常的问题,最终导致类无法被正确加载完毕。

二、SSL协议问题

同样,在对JDBC工具类的性能进行测试时,出现警告如下:Establishing SSL connection without server's identity verification is not recommended. According to MySQL 5.5.45+, 5.6.26+ and 5.7.6+ requirements SSL connection must be established by default if explicit option isn't set. For compliance with existing applications not using SSL the verifyServerCertificate property is set to 'false'. You need either to explicitly disable SSL by setting useSSL=false, or set useSSL=true and provide truststore for server certificate verification.

分析一下警告信息,便知道由于默认是使用SSL安全协议的,而本测试没有,但该警告不影响JDBC工具类的使用,如果想要消除该警告,只需要根据警告信息所说的,要么将useSSL设为false,要么提供证书验证,由于只是测试,所以我最终选择了前者,只需要在配置文件中的数据库url尾部追加?setSSL=false即可。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值