1 JDBC的概念
- JDBC:Java Database Connectivity,意为Java数据库连接。
- JDBC是Java提供的一组独立于任何数据库管理系统的API。
- Java提供接口规范,由各个数据库厂商提供接口的实现,厂商提供的实现类封装成jar文件,也就是我们俗称的数据库驱动jar包。
- 学习JDBC,充分体现了面向接口编程的好处,程序员只关心标准和规范,而无需关注实现过程。
2JDBC的核心组成
- 接口规范:
- 为了项目代码的可移植性,可维护性,SUN公司从最初就制定了Java程序连接各种数据库的统一接口规范。这样的话,不管是连接哪一种DBMS软件,Java代码可以保持一致性。
- 接口存储在java.sql和javax.sql包下。
- 实现规范:
- 因为各个数据库厂商的DBMS软件各有不同,那么各自的内部如何通过SQL实现增、删、改、查等操作管理数据,只有这个数据库厂商自己更清楚,因此把接口规范的实现交给各个数据库厂商自己实现。
- 厂商将实现内容和过程封装成jar文件,我们程序员只需要将jar文件引入到项目中集成即可,就可以开发调用实现过程操作数据库了。
3 JDBC搭建步骤
-
准备数据库。
这边准备的mysql数据库
-
官网下载数据库连接驱动jar包。https://downloads.mysql.com/archives/c-j/
准备好mysql 数据
DROP TABLE IF EXISTS `user`;
CREATE TABLE `user` (
`id` bigint NOT NULL COMMENT '用户唯一标识',
`type` tinyint NOT NULL COMMENT '用户类型',
`name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '用户名称',
`password` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '密码',
`status` tinyint NOT NULL COMMENT '账户状态:0(未激活) 1(活跃), 1(锁定)',
`created_by` bigint NOT NULL COMMENT '创建人ID',
`created_at` datetime NOT NULL COMMENT '创建时间',
`updated_by` bigint NOT NULL COMMENT '修改人',
`updated_at` datetime NOT NULL COMMENT '修改时间',
`is_deleted` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '逻辑删除标记: 0-未删除, -1 已删除',
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = Dynamic;
-- ----------------------------
-- Records of user
-- ----------------------------
INSERT INTO `user` VALUES (0, 0, 'admin', 'admin', 1, 0, '2025-09-08 22:31:08', 0, '2025-09-08 22:31:15', '0');
INSERT INTO `user` VALUES (1, 1, 'qayrup', 'qayrup', 1, 1, '2025-09-08 22:57:48', 1, '2025-09-08 22:57:52', '0');
SET FOREIGN_KEY_CHECKS = 1;
-
创建Java项目,在项目下创建lib文件夹,将下载的驱动jar包复制到文件夹里。
-
选中lib文件夹右键->Add as Library,与项目集成。
-
编写代码
/**
* @author qayrup
* @version 1.0
* @date-time 2025/9/6-18:27
* @belongs-project jdbc-study
* @belongs-package com.qayrup.base
* @description
*/
public class JDBCQuick {
public static void main(String[] args) throws ClassNotFoundException, SQLException {
System.out.println("Hello World!");
//1.加载并初始化驱动
Class.forName("com.mysql.cj.jdbc.Driver");
//2.获取连接
String url = "jdbc:mysql://192.168.77.100:3306/qayrup_study?useUnicode=true&characterEncoding=utf8&useSSL=false";
String user = "root";
String password = "xxxxx";
Connection connection = DriverManager.getConnection(url, user, password);
//获取执行sql语句对象
java.sql.Statement statement = connection.createStatement();
String sql = "select * from user";
//拿到结果集
ResultSet resultSet = statement.executeQuery(sql);
System.out.println("resultSet = " + resultSet);
//处理结果:遍历结果集
while (resultSet.next()) {
int id = resultSet.getInt("id");
String name = resultSet.getString("name");
String pwd = resultSet.getString("password");
System.out.println("id = " + id + " name = " + name + " pwd = " + pwd);
}
//关闭结果集
resultSet.close();
//关闭执行sql对象
statement.close();
//关闭连接
connection.close();
}
}