覆盖驱动获取、工程配置、连接代码、异常排查全链路,适合初学者快速跑通。
mysql-connector-java-5.1.22-bin.jarlib 目录,放入 jar 包ClassNotFoundException: com.mysql.jdbc.Driver 即为漏此步package demo;
import java.sql.*;
public class JDBCTest {
public static Connection getConnection() throws Exception {
Class.forName("com.mysql.jdbc.Driver");
String url = "jdbc:mysql://localhost:3306/jsj";
String user = "root";
String pwd = "111";
return DriverManager.getConnection(url, user, pwd);
}
public static void main(String[] args) {
try (Connection con = getConnection();
Statement st = con.createStatement();
ResultSet rs = st.executeQuery("SELECT * FROM student")) {
System.out.println("学号 姓名 成绩");
while (rs.next()) {
System.out.printf("%d %s %s%n",
rs.getInt("sno"),
rs.getString("sname"),
rs.getString("sgrade"));
}
} catch (ClassNotFoundException e) {
System.err.println("驱动未找到: " + e.getMessage());
} catch (SQLException e) {
System.err.println("数据库错误: " + e.getMessage());
}
}
}
| 现象 | 原因 | 解决 |
|---|---|---|
ClassNotFoundException | jar 未加入 Build Path | 右键 jar → Add to Build Path |
Communications link failure | MySQL 服务未启动 | 服务管理器启动 MySQL 服务 |
| 字段名不匹配 | 代码中 getInt("sno") 与表列名不一致 | 核对表结构,修正列名常量 |
# URL 参数说明
jdbc:mysql://host:port/dbname?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai
useUnicode=true&characterEncoding=utf8:解决中文乱码useSSL=false:5.7+ 默认要求 SSL,开发环境可关闭serverTimezone:8.0+ 必须指定时区进阶:生产环境请使用连接池,配合
PreparedStatement防注入,事务边界明确控制。