在Tomcat中找不到适合jdbc错误的驱动程序
我正在通过eclipse IDE开发一个动态Web应用程序并使用Tomcat 7.0来部署war文件。我试图通过传递url,username和password参数getConnection()
来通过方法连接到数据库。在Tomcat中找不到适合jdbc错误的驱动程序
我已将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;
}
}
“没有合适的驱动程序”通常意味着你已经提供给连接JDBC URL有不正确的语法或当根本没有加载驱动程序。
检查URL语法。该错误通常意味着驱动程序类已加载,但URL不正确。 Here是向您展示正确语法的文档。
当getConnection方法被调用时,DriverManager
将尝试从在那些在初始化加载和那些明确使用相同的类加载器作为现行小应用程序或应用程序加载查找合适的驱动程序。(使用Class.forName()
)
这如果db2cc.jar
不在你的classpath中,也可能发生。我建议将db2cc.jar
放置在你的项目的物理位置/WEB-INF/lib
目录中。然后eclipse会照顾其余的。
由于DB2驱动程序被视为IDE工具的外部jar文件,因此需要将其添加到它。 在Eclipse中,您需要进入菜单Run - > Run Configurations,并在Classpath选项卡中添加外部DB2 jar文件。 这样你的java类就可以访问它。
祝你好运,鲍里斯
我修复了这个错误,修复了连接URL。错误的是: jdbc:postgresql:/192.168.141.113:5432/ IP前只有一个斜杠。 添加双斜线:JDBC:在PostgreSQL://192.168.141.113:5432/固定这个错误
你可能会想尝试'JDBC:db2',而不是'JDBC:DB2' – 2012-07-07 07:09:07
注意,这已经几乎没有与Tomcat有关:没有Tomcat代码涉及这个特定的问题。一般来说,最好使用Tomcat配置DBCP池来更安全地管理资源。 – 2012-07-07 11:48:27
非常感谢Mark和Christopher提供的宝贵信息。问题在于Mark提到的DBtype。小写db2工作。非常感谢。 – 2012-07-11 03:24:27