在 Tomcat 中找不到适合 jdbc 错误的驱动程序

Posted

技术标签:

【中文标题】在 Tomcat 中找不到适合 jdbc 错误的驱动程序【英文标题】:No suitable driver found for jdbc error in Tomcat 【发布时间】:2012-07-06 06:35:20 【问题描述】:

我正在通过 Eclipse IDE 开发一个动态 Web 应用程序,并使用 Tomcat 7.0 来部署 war 文件。我正在尝试通过在getConnection() 中传递url、用户名和密码参数的方法连接到数据库。

我已将 db2jcc jar 放在 tomcat lib 文件夹中。我将 sql 异常作为

No suitable driver found for jdbc:DB2://localhost:50000/InstanceName

在 Eclipse 服务器控制台中。有关如何克服此问题的任何建议。

protected Statement dynamiCreateDBStatement(String url, String DB_Uname,String DBPWD,String DB_Type) 

    try 
        System.out.println(url+"uname="+DB_Uname+"pwd="+DBPWD);
        if(DB_Type.equals("") || DB_Type.equals("null") == false)
        
            if(DB_Type.equalsIgnoreCase("DB2"))
            
                Class.forName("com.ibm.db2.jcc.DB2Driver");
            
            if(DB_Type.equalsIgnoreCase("oracle"))
            
                Class.forName("oracle.jdbc.OracleDriver");
            
        
        String type="javax.sql.DataSource";

        connection1 = DriverManager.getConnection(url, DB_Uname, DBPWD);
        stmt1 = connection1.createStatement();
        connection1.close();
        System.out.println("close conn to db=="+connection1.isClosed());
        return stmt1;
     catch (SQLException e) 
        // TODO Auto-generated catch block
        System.out.println("sql ="+e.getMessage());
        return null;
     catch (ClassNotFoundException e) 
        // TODO Auto-generated catch block
        System.out.println("class=="+e.getMessage());
        return null;
    


【问题讨论】:

你可能想试试jdbc:db2而不是jdbc:DB2 请注意,这几乎与 Tomcat 无关:没有 Tomcat 代码涉及这个特定问题。一般来说,最好使用 Tomcat 来配置 DBCP 池以更安全地管理您的资源。 非常感谢 Mark 和 Christopher 提供的宝贵信息。问题出在 Mark 提到的 DBtype 上。小写 db2 工作。非常感谢。 【参考方案1】:

“没有合适的驱动程序”通常意味着您提供的用于连接的 JDBC URL 语法不正确或根本没有加载驱动程序。

检查 URL 语法。该错误通常意味着驱动程序类已加载,但 URL 不正确。 Here 是向您展示正确语法的文档。

当调用 getConnection 方法时,DriverManager 将尝试从初始化时加载的驱动程序和使用与当前小程序或应用程序相同的类加载器显式加载的驱动程序中找到合适的驱动程序。(使用 Class.forName()

如果db2cc.jar 不在您的类路径中,也可能会发生这种情况。我建议将db2cc.jar 放置在项目的/WEB-INF/lib 目录的物理位置。然后eclipse 将处理其余部分。

【讨论】:

【参考方案2】:

由于 DB2 驱动程序被视为 IDE 工具的外部 jar 文件,因此您需要将其添加到其中。 在 Eclipse 中,您需要转到菜单 Run -> Run Configurations,然后在选项卡 Classpath 中添加外部 DB2 jar 文件。 这样你的 java 类就可以访问它了。

祝你好运,鲍里斯

【讨论】:

【参考方案3】:

我通过修复连接 URL 修复了这个错误。错误地是: jdbc:postgresql:/192.168.141.113:5432/ IP 前只有一个斜线。 添加双斜杠:jdbc:postgresql://192.168.141.113:5432/修复了这个错误

【讨论】:

以上是关于在 Tomcat 中找不到适合 jdbc 错误的驱动程序的主要内容,如果未能解决你的问题,请参考以下文章

在 Worklight 平台中找不到 com.mysql.jdbc.Driver 或项目错误

在 Android Studio 中找不到 JDBC 类

Kafka JDBC Sink Connector 在雪花中找不到表

Maven - 在当前项目和插件组中找不到前缀“tomcat7”的插件

显示错误 - 找不到适合 jdbc:oracle:thin:@localhost:1521:orcl 的驱动程序

http状态404 - 在jsp中找不到,Tomcat服务器上的servlet [重复]