赞
踩
1.什么是JDBC?
JDBC(Java Database Connectivity)是Java语言用于与数据库进行交互的API(应用程序接口)。它允许Java应用程序通过标准化的方式连接到各种数据库,并执行各种数据库操作,如查询、更新和删除数据等。通过JDBC,Java应用程序可以使用SQL语句与数据库进行通信,而不必关心底层数据库的具体实现。JDBC提供了一种灵活、可移植的方式,使开发人员能够轻松地编写与数据库交互的Java应用程序。
2.流程
DriverManager类:DriverManager
是 JDBC 中的一个类,负责管理 JDBC 驱动程序。它的主要作用是加载并注册数据库的驱动程序。通过调用 getConnection()
方法,DriverManager
可以获取与数据库的连接。
Connection接口:Connection
是 JDBC 中的一个接口,表示与数据库的连接。它定义了用于与数据库进行通信的方法,比如创建 Statement
对象、管理事务、关闭连接等。
具体的Connection实现类:Connection
接口的具体实现类由数据库供应商提供的 JDBC 驱动程序实现。当我们通过 DriverManager.getConnection()
方法获取连接时,实际上获得的是数据库驱动程序提供的具体的 Connection
实现类的一个实例。这个实现类负责实现 Connection
接口定义的方法,并管理与数据库的底层通信。
Statement接口及其实现类:Statement
接口用于执行静态 SQL 语句,并返回执行结果。它有两个主要的实现类:Statement
和 PreparedStatement
。Statement
对象用于执行不带参数的 SQL 语句,而 PreparedStatement
对象用于执行预编译的 SQL 语句,可以带有参数,提高了执行效率和安全性。
ResultSet接口:ResultSet
接口用于表示 SQL 查询的结果集。当执行查询语句时,Statement
或 PreparedStatement
对象会返回一个 ResultSet
对象,其中包含了查询结果的数据。通过 ResultSet
对象,我们可以遍历结果集,获取查询结果的各个行和列的数据。
3.项目搭建
准备数据库。
创建学生表
- CREATE TABLE students (
- id INT PRIMARY KEY AUTO_INCREMENT,
- name VARCHAR(50) NOT NULL,
- class VARCHAR(50) NOT NULL,
- age INT NOT NULL,
- score FLOAT
- );
- INSERT INTO students (name, class, age, score) VALUES ('Alice', 'Class A', 20, 85.5);
- INSERT INTO students (name, class, age, score) VALUES ('Bob', 'Class B', 21, 78.2);
- INSERT INTO students (name, class, age, score) VALUES ('Charlie', 'Class A', 19, 92.0);
- INSERT INTO students (name, class, age, score) VALUES ('David', 'Class C', 22, 79.8);
- INSERT INTO students (name, class, age, score) VALUES ('Eva', 'Class B', 20, 88.9);
4.下载驱动包注意你的Mysql版本。我使用8.0以上的。
5.创建java项目。
一个空项目,创建一个lib文件夹,把上面的jar包放进去。
讲lib目录设置为仓库
- package com.xugong;
-
- import com.mysql.jdbc.Driver;
-
- import javax.naming.spi.DirStateFactory;
- import java.sql.*;
-
- public class Test_JDBC {
- public static void main(String[] args) throws ClassNotFoundException, SQLException {
- //1.注册驱动
- Class.forName("com.mysql.cj.jdbc.Driver");
- //2.获取连接对象
- //DriverManager.getConnection();
- String url = "jdbc:mysql://localhost:3306/test_jdbc";
- String username = "root";
- String password = "123456";
- Connection connection = DriverManager.getConnection(url, username, password);
- //3.获取执行sql语句的对象
- Statement statement = connection.createStatement();
- //4.编写sql语句,执行语句,接收结果
- String sql = "select name,class,age,score from students";
- ResultSet resultSet = statement.executeQuery(sql);
- //5.处理结果:遍历result结果集
- while(resultSet.next()){
- String name = resultSet.getString("name");
- String aClass = resultSet.getString("class");
- int age = resultSet.getInt("age");
- float score = resultSet.getFloat("score");
- System.out.println(name+"\t"+aClass+"\t"+age+"\t"+score);
-
- }
- //6.释放资源
- resultSet.close();
- statement.close();
- connection.close();
-
-
- }
- }

结果展示:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。