三大框架 之 spring-JDBC

本文内容纲要:

- spring-JDBC模板

- Spring的JDBC的模板

- JDBC模板使用的入门

- 引入jar包

- 创建数据库和表

- 使用JDBC的模板

- 将连接池和模板交给Spring管理

- 配置文件配置Bean

- 使用jdbcTemplate注解插入数据

- 使用开源连接池

- DBCP

- C3P0

- DRUID

- 使用属性文件配置数据库连接信息

- JDBC模板CRUD操作

- 插入操作

- 删除操作

- 更新操作

- 查询操作

- 事务

- 事务概述

- Spring的事务管理的API

- Spring的事务的传播行为

- Spring事务管理

目录

  • spring-JDBC模板

    • Spring的JDBC的模板

    • JDBC模板使用的入门

      • 引入jar包
      • 创建数据库和表
      • 使用JDBC的模板

    • 将连接池和模板交给Spring管理

      • 配置文件配置Bean
      • 使用jdbcTemplate注解插入数据

    • 使用开源连接池

      • DBCP
      • C3P0
      • DRUID

    • 使用属性文件配置数据库连接信息

    • JDBC模板CRUD操作

      • 插入操作

      • 删除操作

      • 更新操作

      • 查询操作

        • 查询某一个字段
        • 查询返回对象的集合

    • 事务

      • 事务概述

      • Spring的事务管理的API

      • Spring的事务的传播行为

      • Spring事务管理

        • 1.搭建Spring事务管理环境

        • 2.添加事务

          • 编程式事务

            • 配置平台事务管理器
            • Spring提供了事务管理的模板类
            • 在业务层注入事务管理的模板
            • 编写事务管理的代码

          • 声明式事务

            • XML方式声明事务管理
            • 注解方式声明事务管理

spring-JDBC模板

Spring的JDBC的模板

Spring是EE开发的一站式的框架,有EE开发的每层的解决方案。

Spring对持久层也提供了解决方案:ORM模块和JDBC的模板。

Spring提供了很多的模板用于简化开发

JDBC

org.springframework.jdbc.core.jdbc.jdbcTemplate

Hibernate

orm.springframework.orm.hibernamte.HibernateTemplate

JDBC模板使用的入门

引入jar包

  • spring开发基本jar包
  • 数据库驱动
  • Spring的JDBC模板的jar包

创建数据库和表

create table account(

id int primary key auto_increment,

name varchar(20),

money double

);

使用JDBC的模板

将连接池和模板交给Spring管理

配置文件配置Bean

使用jdbcTemplate注解插入数据

使用开源连接池

DBCP

  • 引入jar包

  • 配置DBCP连接池

C3P0

  • 引入jar包

  • 配置

DRUID

  • 引入jar包

  • 配置

使用属性文件配置数据库连接信息

1.创建属性文件jdbc.properties

2.配置文件中引入属性文件

  • 方式(property中的${}中的key与属性配置文件中的key相同)

  • 方式(property中的name与${}中的key不能相同)

JDBC模板CRUD操作

插入操作

删除操作

更新操作

查询操作

查询某一个字段

查询返回对象的集合

事务

事务概述

什么事务

逻辑上的一组操作,组成这组操作的各个单元,要么全都成功,要么全都失败。

事务的特性

原子性:事务不可分割

一致性:事务执行前后数据完整性保持一致

隔离性:一个事务的执行不应该受到其他事务的干扰

持久性:一旦事务结束,数据就持久化到数据库

如果不考虑隔离性引发安全性问题

读问题

脏读:一个事务读到另一个事务未提交的数据

不可重复读:一个事务读到另一个事务已经提交的update的数据,导致一个事务中多次查询结果不一致

虚读、幻读:一个事务读到另一个事务已经提交的insert的数据,导致一个事务中多次查询结果不一致。

写问题

丢失更新

解决读问题

设置事务的隔离级别

Read uncommitted:未提交读,任何读问题解决不了。

Read committed:已提交读,解决脏读,但是不可重复读和虚读有可能发生。

Repeatable read:重复读,解决脏读和不可重复读,但是虚读有可能发生。

Serializable:解决所有读问题。

Spring的事务管理的API

PlatformTransactionManager

PlatformTransactionManage

平台事务管理器 是一个接口,下面有两个实现类

DataSourceTransactionManager

底层使用JDBC管理事务

HibernateTransactionManager

底层使用Hibernate管理事务

TransactionDefinition

事务定义信息:用于定义事务的相关的信息,隔离级别、超时信息、传播行为、是否只读

TransactionStatus

事务状态:用于记录在事务管理过程中,事务的状态的对象。

事务管理的API的关系

Spring进行事务管理的时候,首先平台事务管理器根据事务定义信息进行事务的管理,

在事务管理过程中,产生各种状态,将这些状态的信息记录到事务状态的对象中。

Spring的事务的传播行为

什么是传播行为

一个业务方法当中,调用另一个业务的方法

Spring中提供了七种事务的传播行为

保证多个操作在同一个事务中

PROPAGATION_REQUIRED

默认值,如果A中有事务,使用A中的事务,如果A没有,创建一个新的事务,将操作包含进来

PROPAGATION_SUPPORTS

支持事务,如果A中有事务,使用A中的事务。如果A没有事务,不使用事务。

PROPAGATION_MANDATORY

如果A中有事务,使用A中的事务。如果A没有事务,抛出异常。

保证多个操作不在同一个事务中

PROPAGATION_REQUIRES_NEW

如果A中有事务,将A的事务挂起(暂停),创建新事务,只包含自身操作。如果A中没有事务,创建一个新事务,包含自身操作。

PROPAGATION_NOT_SUPPORTED

如果A中有事务,将A的事务挂起。不使用事务管理。

PROPAGATION_NEVER

如果A中有事务,报异常。

嵌套式事务

PROPAGATION_NESTED

嵌套事务,如果A中有事务,按照A的事务执行,执行完成后,设置一个保存点

执行B中的操作,如果没有异常,执行通过,如果有异常,可以选择回滚到最初始位置,也可以回滚到保存点

Spring事务管理

1.搭建Spring事务管理环境

1.创建AoccuntDao

2.实现Dao接口

3.把Dao交给Spring管理

5.在Dao中注入数据源

在DAO当中注入jdbc模板,要保证dao继承了JdbcDaoSupport

继承之后, 就有了datasource的set方法,就可以注入了

Dao继承JdbcDaoSupport

DAO注入JDBC模板

6.创建Account业务

7.配置service 交给spring 并注入dao

8.测试

2.添加事务

编程式事务

配置平台事务管理器

<!--配置事务管理器-->

<bean id="transactionManager"

class="org.springframework.jdbc.datasource.DataSourceTransactionManager">

<property name="dataSource" ref="dataSource"/>

</bean>

Spring提供了事务管理的模板类

<!--配置事务管理模板-->

<bean id="transactionTemplate"

class="org.springframework.transaction.support.TransactionTemplate">

<property name="transactionManager" ref="transactionManager"/>

</bean>

在业务层注入事务管理的模板

编写事务管理的代码

声明式事务

XML方式声明事务管理

  • 引入aop的开发包

  • 配置事务管理器

  • AOP的配置

    <tx:advice id="txAdvice" transaction-manager="transactionManager">

    tx:attributes

    <tx:method name="*" propagation="REQUIRED"/>

    </tx:attributes>

    </tx:advice>

  • 配置

注解方式声明事务管理

  • 配置事务管理器
  • 开启注解事务

  • 在业务层添加注解

本文内容总结:spring-JDBC模板,Spring的JDBC的模板,JDBC模板使用的入门,引入jar包,创建数据库和表,使用JDBC的模板,将连接池和模板交给Spring管理,配置文件配置Bean,使用jdbcTemplate注解插入数据,使用开源连接池,DBCP,C3P0,DRUID,使用属性文件配置数据库连接信息,JDBC模板CRUD操作,插入操作,删除操作,更新操作,查询操作,事务,事务概述,Spring的事务管理的API,Spring的事务的传播行为,Spring事务管理,

原文链接:https://www.cnblogs.com/mumuyinxin/p/10738902.html

以上是 三大框架 之 spring-JDBC 的全部内容, 来源链接: utcz.com/z/362665.html

回到顶部