JDBC
一 ,JDBC概述
1.1 持久化概述
持久化就是把内存的数据存储到可掉电式存储式设备(硬盘,u盘等)中供以后使用
大多数的企业级应用,数据持久化是将数据保存到各种的关系型数据库,而在java中,数据库的存取技术只能通过JDBC来访问数据数据库,JDBC是Java语言访问数据库的基石,其他的技术都是对JDBC技术的封装
1.2 JDBC概述
- JDBC(Java DataBase Connectivity Java 数据库连接)就是用于执行SQL语句的API,可以为多种关系型数据库提供同意访问
- JDBC的本质就是官方提供的规范接口,帮助开发人员快速实现不同的关系型数据库的连接
1.3 JDBC 开发口诀
贾琏欲执事
加载注册驱动.
获取连接对象.
创建/获取语句对象.
执行SQL语句.
释放资源
二. 功能类的详解
1. DriverManger类 概述
1.1 加载注册驱动
DriverManger :驱动注册管理对象,主要用于加载注册关系型数据库的Driver类以及获取和关系型数据库的连接对象
//把这一份字节码文件加载进JVM,字节码加载进JVM就会执行静态代码块里的代码,
// 而其底层的静态代码块就是在完成注册加载驱动的工作,将驱动注册到DriverManger中
Class.forName("com.mysql.jdbc.Driver");
1.2 获取连接对象
//通过DriverManger的方法获取到连接对象
DriverManger.getConnection("jdbc:mysql:///库名", "账号", "密码");
2. Connection类 概述
Connection:关系型数据库的连接对象,相当于Java程序和数据库的通信桥梁
1.获取执行语句对象
- 获取静态语句执行对象: Statement createStatement();
- 获取预编译语句执行对象: PreparedStatement prepareStatement(String sql);
释放资源 关闭连接对象: void close();
事务
3.3 Statement 类
Statement:静态SQL语句执行对象,用于执行字符串的 SQL 语句
- 执行 DML / DDL 语句 : int executeUpdate(String sql);
返回值 : DML 受影响的行数,DDL 则返回 0
参数:insert、update、delete、create语句
- 执行 DQL 语句:ResuleSet executeQuery(String sql);
返回值:执行查询之后的结果数据
参数:select 语句
JDBC事务
事物是指将一组操作括为一个操作,为确保数据库中的数据的一致性,操作以组为单元,当组里的操作有一部分失败,整事物都为失败,所有操作都会退回到开始的状态
事物的ACID属性
- 原子性:不可以被拆分
- 一致性:保证数据的完整性,数据不被破坏
- 隔离性:事物的执行不能被其他的事务干扰
- 持久性:指的是事务一旦提交,他对数据的改变就是永久性的
连接池思想
普通的JDBC数据库连接使用,DriverManager来获取,每次连接的时候都要将Connection加载到内存里面,每次使用完之后都会断开连接,需要的的时候又重新连接,数据库连接对象没有很好的利用,人数多了就会有系统崩溃的风险
连接池就是一个容器,里面装的都是连接对象需要的时候就在连接池里面取一个,用完了再放回去;