加载 jdbc 驱动程序时的随机行为 class - 找不到合适的驱动程序

Random behavior while loading jdbc driver class - No suitable driver found

我知道这是一个非常常见的问题,我们在 Whosebug 中也有类似的帖子。

但我遇到了同样的问题,顺序非常随机。我不知道如何解决它。 尝试了该站点的所有解决方案,但没有成功

这是我的代码

 private static Connection conn = null;
 private static String connDriverClass;
 private static String  connDbUrl;
 private static String  connDbUser;
 private static String  connDbPassword;

 private static Connection getConnection() throws  SQLException, ClassNotFoundException {
    connDriverClass = "com.sybase.jdbc3.jdbc.SybDriver";
    connDbUrl="jdbc:sybase:Tds:some.com:5000/db";
    connDbUser="user";
    connDbPassword="pass";

    if(conn !=null && !conn .isClosed()) { return conn ; }

    try {
        Class.forName(connDriverClass);
        viTechConn = DriverManager.getConnection(connDbUrl, connDbUser, connDbPassword);
    } catch (SQLException | ClassNotFoundException e) {
        LOG.error("Error in getting DB Connection "+e.getMessage());
        throw e;
    }
    return conn;
}

我们运行它在并行进程中。

有时工作正常,有时会报错说

java.sql.SQLException: No suitable driver found for jdbc:sybase:Tds:some.com:5000/db

请告诉我如何克服这种随机行为。

谢谢。

您可以考虑改用合并数据源。一劳永逸,以后省去很多调试工作。

请参阅以下 class 文件实现,了解如何创建和访问池化数据源。

http://www.programcreek.com/java-api-examples/index.php?source_dir=jasperserver-master/5.5/com/jaspersoft/jasperserver/api/engine/jasperreports/service/impl/JdbcReportDataSourceServiceFactory.java