type
status
date
slug
summary
tags
category
icon
password
1. 什么是 JDBC(Java Database Connectivity)?
Java数据库连接,用于执行SQL语句的javaAPI,可方便实现多种数据库的统一操作
2. JDBC 操作数据库的基本步骤
- 加载数据库驱动
- 获取数据库连接
- 创建执行 SQL 语句的对象
- 执行 SQL 语句得到结果
- 关闭数据库连接
3. 批处理
4. 事务
事务的 ACID 属性:
- 原子性(Atomicity):要么全部执行,要不全部不执行
- 一致性(Consistency):执行结果必须使数据库从一个状态转变到另一个状态
- 隔离性(Isolation):不同的事务并发操纵相同的数据时, 各事务互不干扰
- 持久性(Durability):一个事务成功执行,数据库数据对应的改变是永久性的
数据库 4 种隔离级别:
- READ_UNCOMMITTED:什么都不解决
- READ_COMMITTED:解决脏读
- REPEATABLE_READ(MySQL默认):解决脏读、不可重复读
- SERIALIZABLE:解决脏读、不可重复读、幻读
脏读:一个事务读取到另外一个事务修改后未提交的数据
不可重复读:一个事务多次读取同一数据却返回不同的结果(原数据被另一个事务update了)
幻读:一个事务多次相同的sql查询返回不同的记录(原表被另一个事务insert了新的行)
5. 元数据
元数据,本质是定义数据的数据,可以描述数据库、表、列的定义信息
- DataBaseMetaData:数据库元数据
- ParameterMetaData:参数元数据
- ResultSetMetaData:结果集元数据
6. 简化 JDBC
增、删、改
查
7. 数据库连接池
- DBCP:tomcat 自带,有BUG,淘汰
- C3P0:速度慢,稳定性好,开源
- Druid:最常用,阿里提供
使用 druid 连接池创建数据库连接
8. DbUtils 框架(commons-dbutils-xxx.jar)
dbutils 是对 JDBC 简单的封装,极大简化 jdbc 编码的工作量
QueryRunner类
该类简化了SQL查询,配合ResultSetHandler使用,可以完成大部分的数据库操作,重载了许多的查询,更新,批处理方法。大大减少了代码量
ResultSetHandler接口
该接口规范了对ResultSet的操作,要对结果集进行什么操作,传入ResultSetHandler接口的实现类即可。
使用 DbUtils 的 CRUD 操作
9. 使用 JDBC 实现分页
Mysql 分页语法
- Author:风之旅人
- URL:https://www.hrmi.fun//article/jdbc
- Copyright:All articles in this blog, except for special statements, adopt BY-NC-SA agreement. Please indicate the source!