一、引言
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数据库驱动)
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 | //DriverManager 类中的静态方法 |
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 | String sql = "insert into student values ('zhangsan' , 28 , '男','6班');"; |
- 注意:在编写DML语句时,一定要注意字符串参数的符号是单引号’值’
- DML语句:增删改时,返回受影响行数(int类型)。
- DQL语句:查询时,返回结果数据(ResultSet结果集)
4.5 释放资源
遵循先开后关原则,释放所使用的资源对象
1 |
|
开发步骤总和
整合以上核心步骤,实现从数据库表中删除一条数据
1 | public class DeletejdbcDemo{ |