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

时间:2012-07-06 06:35:20

标签: tomcat jdbc

我正在通过eclipse IDE开发动态Web应用程序,并使用Tomcat 7.0来部署war文件。我正在尝试通过在getConnection()中传递url,username和password参数来通过方法连接到数据库。

我已将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;
    }

}

3 个答案:

答案 0 :(得分:0)

“没有合适的驱动程序”通常意味着您提供给连接的JDBC URL具有错误的语法或者根本没有加载驱动程序。

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

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

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

答案 1 :(得分:0)

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

祝你好运,鲍里斯

答案 2 :(得分:-2)

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