举个例子:某个项目在缺少依赖包的情况下
提示很明显,缺少驱动包"com.mysql.cj.jdbc.Driver"
图片中的代码:
package ex02;
import java.sql.*;
public class JDBC01 {
// JDBC连接的URL,需要指定数据库名称和用户名密码
static final String JDBC_URL = "jdbc:mysql://localhost:3306/testdb";
static final String JDBC_USER = "root";
static final String JDBC_PASSWORD = "P@ssw0rd";
public static void main(String[] args) {
Connection conn = null;
Statement stmt = null;
ResultSet rs = null;
try {
// 1. 注册MySQL JDBC驱动程序
Class.forName("com.mysql.cj.jdbc.Driver");
// 2. 打开连接
System.out.println("连接到数据库...");
conn = DriverManager.getConnection(JDBC_URL, JDBC_USER, JDBC_PASSWORD);
// 3. 执行查询
System.out.println("创建Statement对象...");
stmt = conn.createStatement();
String sql;
sql = "SELECT id, name FROM testtable";
rs = stmt.executeQuery(sql);
// 4. 处理结果集
while (rs.next()) {
// 获取字段值
int id = rs.getInt("id");
String name = rs.getString("name");
// 输出数据
System.out.print("ID: " + id);
System.out.print(", Name: " + name);
System.out.println();
}
// 5. 更新数据
System.out.println("更新数据...");
sql = "UPDATE testtable SET name='xiaml' WHERE id=1";
int rowsUpdated = stmt.executeUpdate(sql);
System.out.println("已更新 " + rowsUpdated + " 行数据。");
// 6. 执行查询修改后的结果
System.out.println("查询修改后的结果...");
sql = "SELECT id, name FROM testtable WHERE id=1";
rs = stmt.executeQuery(sql);
while (rs.next()) {
// 获取字段值
int id = rs.getInt("id");
String name = rs.getString("name");
// 输出数据
System.out.print("ID: " + id);
System.out.print(", Name: " + name);
System.out.println();
}
System.out.println();
} catch (SQLException se) {
// 处理JDBC错误
se.printStackTrace();
} catch (Exception e) {
// 处理Class.forName错误
e.printStackTrace();
} finally {
// 6. 关闭资源
try {
if (rs != null) rs.close();
if (stmt != null) stmt.close();
if (conn != null) conn.close();
} catch (SQLException se) {
se.printStackTrace();
}
}
System.out.println("Goodbye!");
}
}
/*
连接到数据库...
创建Statement对象...
ID: 1, Name: xiaml
ID: 2, Name: xml
ID: 3, Name: bell
ID: 4, Name: tom
ID: 5, Name: John
ID: 6, Name: xiamingliang
更新数据...
已更新 1 行数据。
查询修改后的结果...
ID: 1, Name: xiaml
Goodbye!
*/
如何解决呢?
1.我们这里缺少的mysql jdbc驱动包:mysql-connector-j-8.4.0.jar
,因此来到mysql官网进行下载
Windows下就选择"Platform independent
"
我们下载zip的包。
2.在项目的根目录创建存放jar包的文件夹,建议名字叫libs
3.将刚下载的zip包解压并将其中的.jar的文件复制到libs文件夹里。
只需要复制.jar的文件就好了。
4.在IDE(我这里是Eclipse)的项目根文件夹上单极鼠标右键,选择"Properties "后,依次点击:"Java Build Path"->"Libraries"-"Classpath"->"Add JARs..."
找到我们放在libs目录下的jar文件
确定后,在我们项目下的"Referenced Libraries"下可以看到我们导入的jar包就说明导入成功了。
再次运行程序就不会报错了。
我们整个例子中,恰巧mysql-connector-j-8.4.0.jar
不需要再依赖其他的第三方包了,因此,导入一次就可以了。但是实际情况中有可能导入依赖的jar包后发现它本身又依赖其他的jar包,那就需要我们反复找到他们并逐一导入,是比较繁琐的,为Maven作为包管理器就可以轻松地解决这些依赖问题。
手动导入的方法适合很小的测试类项目不想要使用Maven或者想要了解java程序包依赖管理的整个过程时使用。