数据源(DataSource)
定义
数据源是数据库连接的来源,通过 DataSource 接口获取。
类型
通用型数据源(javax.sql.DataSource)
主要使用场景:通用型数据库,本地事务,一般通过Socket方式连接。
分布式数据源(javax.sql.XADataSource)
blog.csdn.net/moonpure/ar…
主要使用场景:通用型数据库,分布式事务,一般通过Socket方式连接。
嵌入式数据源(org.springframework.jdbc.datasource.embedded.EmbeddedDatabase)
主要使用场景:本地文件系统数据库,如:HSQL、H2、Derby等。 枚举:org.springframework.jdbc.datasource.embedded.EmbeddedDatabaseType
事务(Transaction)
定义
事务用于提供数据完整性,并在并发访问下确保数据视图的一致性。
重要概念
自动提交模式(Auto-commit mode)
事务隔离级别(Transaction isolation levels)
保护点(Savepoints)
自动提交模式(Auto-commit mode)
默认情况下,当独立SQL语句执行后,当前事务将会自动提交。
触发时机
DML 执行后
DDL 执行后
SELECT 查询后结果集关闭后
存储过程执行后(如果执行返回结果集的话,待其关闭后)
事务隔离级别(Transaction isolation levels)
事务隔离级别决定事务中执行语句中的数据可见性。
事务并发可能的影响
脏读(dirty reads)
不可重现读(nonrepeatable reads)
幻读(phantom reads)
保护点(Savepoints)
保护点是在事务中创建,提供细粒度事务控制。
使用场景
部分事务回滚
选择性释放
JDBC 4.0(JSR-221)
核心接口
驱动接口:java.sql.Drvier
驱动管理:java.sql.DriverManager
数据源:javax.sql.DataSource
数据连接:java.sql.Connection
执行语句:java.sql.Statement
查询结果集:java.sql.ResultSet
元数据接口:java.sql.DatabaseMetaData、java.sql.ResultSetMetaData
Spring Boot 整合
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>