当将项目代码和依赖独立打包时,项目代码内DriverManager.getConnection(url, connectionProperties)可以正常获取数据库链接
但是,将项目代码和依赖使用maven-shade-plugin打到一个jar包中时,却出现如下的报错:
Exception in thread "main" java.sql.SQLException: No suitable driver found for jdbc:postgresql://[ip]:[port]/XXXX?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai
at java.sql.DriverManager.getConnection(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
...
...
在检查并更换数据库url后发现问题并未解决
一番google后发现,需要在程序的某处添加如下代码
Class.forName("org.postgresql.Driver");
作用是根据已经给定的名称从classPath中查找对应的对象并返回
参考链接:https://stackoverflow.com/questions/5130254/java-error-no-suitable-driver-found
重新打包并测试运行,发现问题解决!
不清楚为什么使用maven-shade-plugin打到一个jar包中会导致程序找不到postgresql的驱动对象