gpt4 book ai didi

mysql - 如何修复 : "No suitable driver found for jdbc:mysql://localhost/dbname" error when using pools?

转载 作者:行者123 更新时间:2023-11-28 23:18:46 24 4
gpt4 key购买 nike

<分区>

我正在尝试创建到我的数据库的连接,当我使用 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, 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

是什么导致了这个错误?

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com