Spring Boot 数据库JDBC

数据源(DataSource)

数据源是数据库连接的来源,通过 DataSource 接口获取。

类型
  • 通用型数据源(javax.sql.DataSource)
    主要使用场景:通用型数据库,本地事务,一般通过Socket方式连接。
  • 分布式数据源(javax.sql.XADataSource)
    主要使用场景:通用型数据库,分布式事务,一般通过Socket方式连接。
  • 嵌入式数据源(org.springframework.jdbc.datasource.embedded.EmbeddedDatabase)
    主要使用场景:本地文件系统数据库,如:HSQL、H2、Derby等。
    枚举:org.springframework.jdbc.datasource.embedded.EmbeddedDatabaseType

事务(Transaction)

事务用于提供数据完整性,并在并发访问下确保数据视图的一致性。

自动提交模式(Auto-commit mode)

默认情况下,当独立SQL语句执行后,当前事务将会自动提交。

事务隔离级别(Transaction isolation levels)

事务隔离级别决定事务中执行语句中的数据可见性。

事务并发可能的影响
  • 脏读(dirty reads):A线程在读的时候,B线程在写,A线程在读的时候读到B线程修改后的数据(数据库同理)
  • 不可重复读(nonrepeatable reads):A读去读某一行的时候,B去修改同一行,A再去读的时候就会不一样
  • 幻读(phantom reads):
保护点(Savepoints):

保护点是在事务中创建,提供细粒度事务控制。

使用场景

  • 部分事务回滚
  • 选择性释放

触发时机

  • DML 执行后(insert/update/delete)
  • DDL 执行后(定义语句create table)
  • SELECT 查询后结果集关闭后
  • 存储过程执行后(如果执行返回结果集的话,待其关闭后)

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 整合

pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
	<modelVersion>4.0.0</modelVersion>

	<groupId>com.segmentfault</groupId>
	<artifactId>spring-boot-lesson-6</artifactId>
	<version>0.0.1-SNAPSHOT</version>
	<packaging>jar</packaging>

	<name>spring-boot-jdbc</name>
	<description>Demo project for Spring Boot</description>

	<parent>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-parent</artifactId>
		<version>1.5.4.RELEASE</version>
		<relativePath/> <!-- lookup parent from repository -->
	</parent>

	<properties>
		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
		<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
		<java.version>1.8</java.version>
	</properties>

	<dependencies>

		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-jdbc</artifactId>
		</dependency>

		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-tx</artifactId>
		</dependency>

		<dependency>
			<groupId>commons-
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值