下载驱动包
从 MySQL 官网下载驱动包,最新版本是 8.0.x。我选择的是稍老一点的版本 5.1.49,需要点击 Archives 进入新的下载页面。
文章图片
再次选择版本号,Operating System 只有一个选项“Platform Independent”,点击 Download 按钮,我选择的是 Zip Archive。
文章图片
解压刚刚下载的压缩包,可以看到文件 mysql-connector-java-5.1.49.jar 就是后面需要的驱动包。
导入驱动包
如果不导入驱动包,使用 JDBC 时会报错 java.lang.ClassNotFoundException: com.mysql.jdbc.Driver。将上一步准备好的驱动包复制到项目内或者项目外合适的目录,只要文件不丢、方便管理即可。这里导入驱动包,以 IntelliJ IDEA CE 为例。点击菜单栏 File > Project Structure...,在打开的界面点击左侧的 Modules,
文章图片
再点击右侧的 Dependencies,会看到一个列表。再点击列表的添加按钮(+符号),选择 Jars or Directories...,找到驱动包文件,即可添加到该列表,最后点击当前界面的 Apply 或者 OK,完成导入。
编写代码
以下代码是一个通过 JDBC 访问 MySQL 的样例代码package com.ericling.exercise;
package com.ericling.exercise;
import java.sql.*;
/**
* @author EricLing
*/
public class MySqlExercise {
public static void main(String[] args) {
try {
// 加載驅動包
Class.forName("com.mysql.jdbc.Driver");
} catch (ClassNotFoundException exception) {
exception.printStackTrace();
}try {
// 連接數據庫
Connection connection = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/demo", "test_user", "*this-is-password*");
// 创建 Statement 对象,用于执行 SQL 语句
Statement statement = connection.createStatement();
ResultSet rs = statement.executeQuery("select * from students");
// ResultSet 是结果集,相当于迭代器,一次获取一行记录
while (rs.next()) {
System.out.println(rs.getInt(1) + "\t" + rs.getString(2));
}rs.close();
connection.close();
} catch (SQLException throwable) {
throwable.printStackTrace();
}
}
}
在使用 JDBC 操作 MySQL 数据时,当程序结束时,它会自动关闭 MySQL 连接。但最好是在不需要的时候,立即关闭连接。
常见问题 com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failureCaused by: java.net.ConnectException: Connection timed out: connect连接错误,连接超时,无法与数据库建立连接。可能是数据库的地址、端口错误,或者网络异常。
java.sql.SQLException: Access denied for user 'test_user'@'192.168.11.107' (using password: YES)准备连接 MySQL 数据库的账号或密码错误。
【Java JDBC 入门(通过 JDBC 访问 MySQL)】java.sql.SQLException: Before start of result setResultSet 是结果集,如果结果集中有数据,必须调用 next() 方法才能拿到第一行记录,再次调用则拿到第二行数据。
推荐阅读
- 计算机操作系统|《计算机操作系统-第四章》之进程
- 服务器|nginx网站服务
- 服务器|Linux系统安全及应用
- Java内存模型Memory Model
- 从一个栈引出的内存泄露问题
- java|Redis未授权访问的三种利用方式
- java|springboot+nodejs+Vue影视作品网站java
- java|Java计算机毕业设计停车场信息管理系统源码+系统+数据库+lw文档
- #|项目登录页面框架