如何解决如何解决:使用池时出现“找不到适用于jdbc:mysql:// localhost / dbname的驱动程序”错误?[重复]
尝试将驱动程序jar放在服务器lib文件夹中。($ CATALINA_HOME / lib)
我认为即使在实例化应用程序之前也需要建立连接池。(至少这是它在Jboss中的工作方式)
解决方法
这个问题已经在这里有了答案 :
臭名昭著的java.sql.SQLException:未找到合适的驱动程序 (13个答案)
3年前关闭。
我试图建立与数据库的连接,当我使用main方法测试代码时,它可以无缝运行。但是,当尝试通过Tomcat 7访问它时,它失败并显示以下错误:
No suitable driver found for jdbc:mysql://localhost/dbname.
我正在使用池。我将WEB-INF /
lib和.classpath中的mysql连接器(5.1.15),dbcp(1.4)和pool(1.4.5)库放入其中。我正在使用Eclipse
IDE。我的数据库驱动程序代码是:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import org.apache.tomcat.dbcp.dbcp.ConnectionFactory;
import org.apache.tomcat.dbcp.dbcp.DriverManagerConnectionFactory;
import org.apache.tomcat.dbcp.dbcp.PoolableConnectionFactory;
import org.apache.tomcat.dbcp.dbcp.PoolingDriver;
import org.apache.tomcat.dbcp.pool.impl.GenericObjectPool;
public class DatabaseConnector {
public static String DB_URI = "jdbc:mysql://localhost/dbname";
public static String DB_USER = "test";
public static String DB_PASS = "password";
// Singleton instance
protected static DatabaseConnector _instance;
protected String _uri;
protected String _username;
protected String _password;
/**
* Singleton,so no public constructor
*/
protected DatabaseConnector(String uri,String username,String password) {
_uri = uri;
_username = username;
_password = password;
GenericObjectPool connectionPool = new GenericObjectPool(null);
ConnectionFactory connectionFactory = new DriverManagerConnectionFactory(
_uri,_username,_password);
PoolableConnectionFactory poolableConnectionFactory =
new PoolableConnectionFactory(connectionFactory,connectionPool,null,false,true);
PoolingDriver driver = new PoolingDriver();
driver.registerPool("test",connectionPool);
}
/**
* Returns the singleton instance
*/
public static DatabaseConnector getInstance() {
if (_instance == null) {
_instance = new DatabaseConnector(DB_URI,DB_USER,DB_PASS);
}
return _instance;
}
/**
* Returns a connection to the database
*/
public Connection getConnection() {
Connection con = null;
try {
con = DriverManager.getConnection("jdbc:apache:commons:dbcp:test");
} catch (SQLException e) {
throw new RuntimeException(e);
}
return con;
}
}
我的堆栈跟踪的开始:
Apr 5,2011 9:49:14 PM org.apache.catalina.core.StandardWrapperValve invoke
SEVERE: Servlet.service() for servlet [Login] in context with path [/Project]
threw exception
java.lang.RuntimeException: java.sql.SQLException:
No suitable driver found for jdbc:mysql://localhost/dbname
是什么导致此错误?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。