0

我正在通过 Eclipse IDE 开发一个动态 Web 应用程序,并使用 Tomcat 7.0 来部署 war 文件。我正在尝试通过在getConnection().

我已将db2jcc罐子放在 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;
    }

}
4

3 回答 3

1

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

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

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

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

于 2012-07-06T06:57:45.690 回答
0

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

祝你好运,鲍里斯

于 2013-03-16T21:59:40.337 回答
-2

I fixed this error by fixing the connection URL. By mistake it was: jdbc:postgresql:/192.168.141.113:5432/ with only one slash before the IP. Adding the double slash: jdbc:postgresql://192.168.141.113:5432/ fixed this error

于 2013-08-27T05:46:41.420 回答