loading...
JDBC
Published in:2022-01-31 | category: JavaWeb基础知识总结
Words: 1.5k | Reading time: 6min | reading:

一、引言

1.1如何操作数据

使用客户端工具访问是数据库,需要手工建立链接,输入用户名和密码登录,编写SQL语句,点击执行,查看操作结果(结果集或受影响行数)

客户端操作数据库步骤

1.2实际开发中,会采用客户端操作数据库吗

在实际开发中,当用户的数据发生改变时,不可能通过客户端操作执行SQL语句,因为操作量过大,无法保证效率和正确性

二、JDBC

2.1什么是JDBC

$\color{blue}{JDBC(Java Database Connectivity) java连接数据库的规范(标准),可以使用Java语言连接数据库完成CRUD操作。}$

使用JDBC的好处:
1.程序员如果要开发访问数据库的程序,秩序要调用JDBC接口中的方法即可,不用关注类是如何实现的
2.使用同一套Java代码,进行少量的修改就可以访问其他JDBC支持的数据库

2.2JDBC的核心思想

Java中定义了访问数据库的接口,可以作为多种关系型数据库提供统一的访问方式,由数据库厂商提供驱动实现类(Driver数据库驱动)

JDBC核心思想

2.2.1MySQL数据库驱动

  • mysql-conector-java-5.1.x适用于5.X版本
  • mysql-connector-java-8.0.X 适用于 8.X版本

2.2.2JDBC开发使用到的包

会使用到的包 说明
java.sql 所有与JDBC访问数据库相关的接口和类
javax.sql 数据库扩展包,提供数据库额外的功能。:如连接池
数据库的驱动 由各大数据库厂商提供,需要额外去下载,是对JDBC接口实现的类

2.2.3JDBC API

JDBC是由多个接口和类进行功能实现

类型 权限定名 简介
class java.sqlDriverManager 管理多个数据库驱动类,提供了获取数据库连接的方法
interface java.sql.Connection 代表一个数据库连接(当Connection不是null是,表示已连接数据库)
interface java.sql.Statement 发送SQL语句到数据库工具
interface java.sql.ResultSet 保存SQL查询语句的结果数据(结果集)
class java.sql.SQLException 处理数据库应用程序时所发生的异常

2.3环境搭建

  • 在项目下新建lib文件夹,用于存放jar文件
  • 将mysql驱动mysql-connector-java-5.1X赋值到项目的lib文件夹中
  • 选中lib文件右键Add as Library(IDEA)

三、JDBC中使用到的类与接口

3.1 DriverManager类

3.1.1DriverManage类的作用

1.管理和注册驱动
2.创建数据库的连接

3.1.2常用方法

1
2
3
4
5
//DriverManager 类中的静态方法
Connection getConnection(String url , String user ,String password) //通过连接字符串,用户名,密码来得到数据库对象

Connection getConnection(String url , Properties info) //通过连接字符串,属性对象来得到连接对象

3.1.3使用JDBC连接数据库的四个参数

JDBC连接数据库的四个参数 说明
user 登录的用户名
password 登录的密码
url 不同的数据库URL是不同的,mysql的写法是jdbc:mysql://localhost:3306/数据库名[?参数=参数值]
driverClass(驱动类的字符串名) com.mysql.jdbc.Driver

3.1.4连接数据库的URL地址格式

协议名:子协议://服务器名或IP地址:端口号/数据库名?参数 = 参数值.

3.1.5 MySQL中可以简写

前提:必须是本地服务器,端口号是3306
jdbc:mysql://localhost:3306//数据库名

3.2 Connection接口

3.2.1 Connection作用

Connection接口,具体的实现类是由数据库的厂商实现的,代表一个连接对象

3.2.2 Connection方法

Statement createStatement //创建一条sql语句对象

3.3 Statement接口

3.3.1 Statement作用

代表一条语句对象,用于发送SQL语句给服务器,用于执行静态SQL语句并返它所成结果的对象

3.3.2 Statement中的方法

int executeUpdate 用于 发送DML语句,增删改的操作,insert、update、delete
参数:SQL语句
返回值:返回对数据库影响的行数
ResultSet excuteQuery(String sql) 用于发送DQL语句,执行查询的操作。select
参数:SQL语句
返回值:查询结果集

3.3.3 释放资源

  • 需要释放的对象:ResultSet结果集,Statement语句,Connection连接
  • 释放原则:先开的后关,后开的先关
  • 放在finally代码块中

四、JDBC开发步骤【重点】

4.1 注册驱动

使用Class.forName(String dirverClass)手动加载字节码文件到JVM中

Class.forName("com.mysql.jdbc.Driver"); //加载驱动

4.2 连接数据库

通过DriverManager.getConnection(url,user,password)获取数据库连接对象

Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/mydb01" , "root" ,"123456");

4.3 获取发送SQL的对象

通过Connection对象获得Statement对象,用于对数据库进行通用访问。

Statement statement = conn.createStatement();

4.4 创建SQL语句,执行SQL语句

执行SQL语句并接收执行结果

1
2
3
4
String sql = "insert into student values ('zhangsan' , 28 , '男','6班');";

int result = statement.executeUpdate(sql); //执行SQL语句并接收结果

  • 注意:在编写DML语句时,一定要注意字符串参数的符号是单引号’值’
  • DML语句:增删改时,返回受影响行数(int类型)。
  • DQL语句:查询时,返回结果数据(ResultSet结果集)

4.5 释放资源

遵循先开后关原则,释放所使用的资源对象

1
2
3
4

statment.close();
conn.close();

开发步骤总和

整合以上核心步骤,实现从数据库表中删除一条数据

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
public class DeletejdbcDemo{
public static void main(Stirngs[] args){
//1.加载驱动
Class.forName("com.mysql.jdbc.Driver");

//2.获得连接对象
Connection conn = DriverManage.getConnection("jdbc:mysql://localhost:3306/mydb01","root","123456");

//3.创建SQL语句
String sql = "delete from student where id = 1;";

//4.获得执行SQL的对象
Statemenet statement = conn.createStatement();

//5.执行更新
int count = statement.executeUpdate(sql);

//6.处理结果
System.out.println("共影响了"+count+"行数据" );

//7.释放资源
statement.close();
conn.close();
}
}
Prev:
JSP
Next:
模拟斗地主洗牌与发牌功能
catalog
catalog