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

时间:2016-03-30 17:01:13

标签: java database jdbc sybase dbconnection

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

但我以非常随机的顺序面对同样的问题。我不知道如何解决它。 试过这个网站的所有解决方案,但没有运气

这是我的代码

Where

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

它有时很好用,有时会出错

 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;
}

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

感谢。

1 个答案:

答案 0 :(得分:1)

您可以考虑使用池化数据源。这是一次性的努力,将来会节省大量的调试工作。

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

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