如何修复:“找不到适合 jdbc:mysql://localhost/dbname 的驱动程序”错误
Posted
技术标签:
【中文标题】如何修复:“找不到适合 jdbc:mysql://localhost/dbname 的驱动程序”错误【英文标题】:How to fix: “No suitable driver found for jdbc:mysql://localhost/dbname” error 【发布时间】:2016-11-02 20:38:54 【问题描述】:我正在尝试在 java 中创建与我的 musql 的连接。 当我使用 Main 执行此操作时,它没有问题,但是当我使用 apache 时,它返回错误:
java.sql.SQLException: No suitable driver found for jdbc:mysql://localhost:3306/database_name..
我阅读了相似的问题,其中none 帮助了我。
我使用 JDK 8 和 JDBC 5。 JDBC 驱动程序位于项目库中,我将其包含在构建路径中 这是我的代码:
// JDBC driver name and database URL
static final String JDBC_DRIVER = "com.mysql.jdbc.Driver";
static final String DB_URL = "jdbc:mysql://localhost:3306/program1";
// Database credentials
static final String USER = "user";
static final String PASS = "pass";
private static Connection conn = null;
/*
* Create connection to the DB in singletone
* */
protected static Connection getConnection() throws ClassNotFoundException, SQLException
if(conn==null)
try
// Register JDBC driver
//Class.forName(JDBC_DRIVER);
// Open connection
conn = DriverManager.getConnection(DB_URL,USER,PASS);
catch ( SQLException e)
// TODO Auto-generated catch block
e.printStackTrace();
if(conn != null)
conn.close();
return conn;
在调试运行“conn = DriverManager.getConnection(DB_URL,USER,PASS);
”行的那一刻,我得到了异常。
是什么导致了这个错误?为什么当我从 main 运行它时它可以工作?
【问题讨论】:
典型的类路径 这完全取决于你在做什么。 Servlet 引擎,eclipse,调试,发布,web-inf/lib
...
我使用 servlet 引擎,但在调试中我可以看到 servlet 进行调用,问题出在 DriverManager.getConnection
并且类路径变量是“C:\Program Files\Java\jdk1.8.0_40\jre\lib”
您是否尝试过已弃用的 Class.forName
?还要特别指定 servlet 引擎类型,并显示它的 lib 信息(换句话说,从 dubiosity 缩小范围)
【参考方案1】:
你需要下载mysqlConnector,并将is作为一个lib添加到你的项目中。
https://dev.mysql.com/downloads/connector/j/
【讨论】:
它是 jdbc,我下载了它并将其添加到项目和构建路径中以上是关于如何修复:“找不到适合 jdbc:mysql://localhost/dbname 的驱动程序”错误的主要内容,如果未能解决你的问题,请参考以下文章
找不到适合'jdbc:mysql:// localhost:3306 / mysql的驱动程序[重复]
Maven:找不到适合 jdbc::mysql://google 的驱动程序
Openshift - 找不到适合 jdbc:mysql 的驱动程序
在 JMETER JDBC 连接配置中找不到适合 jdbc:mysql://localhost:3306/Testing 的驱动程序