问题
我目前正在使用Java9及其模块系统,希望通过JDBC连接到我的PostgreSQL数据库。
问题是,我找不到任何关于它在Java9和它的模块系统中的设置的信息,但只针对Java8和更早的版本。
问题
如何使用java模块系统正确设置JDBC及其驱动程序?

最佳答案

jar必须在运行时位于类路径上。编译时不需要jar。
如果Postgresql驱动程序已经模块化,它将在运行时使用uses/provides机制:
java JRE:

module java.sql {
   uses java.sql.Driver;
   exports java.sql;
}

然后,驱动程序应该在模块信息中包含如下内容:
module org.postgresql {
   requires java.sql;
   provides java.sql.Driver with org.postgresql.Driver;
}

普通的ServiceLoader会自动发现驱动程序。
Class.forName("org.postgresql.Driver");通常是不需要的,只是在一些JavaEE应用程序中有一些类加载器在做杂耍。

10-05 20:58
查看更多