【问题标题】:connecting to a database through JDBC [duplicate]通过 JDBC 连接到数据库 [重复]
【发布时间】:2015-06-18 23:28:20
【问题描述】:

我正在尝试按照书中关于使用 JDBC 将程序连接到数据库的教程进行操作。我对课堂上的第一段代码在做什么感到困惑。当我运行代码时,我收到一条错误消息,指出 java.sql.SQLException: No suitable driver found for jdbc:mysql://localhost:8889/book_store

并且代码在类内的第一个块中引发异常。我需要在项目中添加某种依赖项或库吗?

如您所知,这是我第一次尝试使用 db...

package com.apress.books.dao;

import com.apress.books.model.Author;
import com.apress.books.model.Book;
import com.apress.books.model.Category;

import java.sql.*;
import java.util.ArrayList;
import java.util.List;

public class BookDAOImpl implements BookDAO {

static {
    try {
        Class.forName("com.mysql.jdbc.Driver");
    } catch (ClassNotFoundException ex) {
    }
}

private Connection getConnection() throws SQLException {
    return DriverManager.getConnection("jdbc:mysql://localhost:8889/book_store",
            "root", "password");
}

private void closeConnection(Connection connection) {
    if (connection == null)
        return; try {
        connection.close();
    } catch (SQLException ex) {
    }
}
@Override
public void insert(Book book) {

}

@Override
public void update(Book book) {

}

@Override
public void delete(Long bookId) {

}
}

【问题讨论】:

  • 你的类路径中需要mysql驱动jar。

标签: java mysql jdbc database-connection


【解决方案1】:

本质上这是一个 ClassNotFoundException。您的第一个 catch 子句是空的,因此,尽管捕获了异常,但您并没有对其采取行动。至少,我会做这样的事情:

static {
    try {
        Class.forName("com.mysql.jdbc.Driver");
    } catch (ClassNotFoundException ex) {
        throw ex;
    }
}

这将帮助您更好地了解导致您的麻烦的原因。

继续寻找解决方案:

如果您使用的是 Maven,则需要在您的 pom.xml 中添加以下依赖项:

<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>5.1.35</version>
</dependency>

如果您愿意,可以将版本更改为找到here 的任何版本。

否则,您需要从同一链接下载 jar 并将其包含在您的项目依赖项中。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-11-28
    • 2014-06-15
    • 1970-01-01
    • 1970-01-01
    • 2021-03-15
    • 2015-12-18
    • 2021-05-13
    相关资源
    最近更新 更多