Spring Boot 数据库JDBC

360 阅读2分钟

数据源(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>