【发布时间】: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 工作。非常感谢。