Spring整合Mybatis和声明式事务

发布时间 2023-07-18 17:03:52作者: Hmzzz2

Spring整合Mybatis

  1. 导入相关jar包

  • junit

  • mybatis

  • mysql数据可

  • spring相关

  • aop织入

  • mybatis-spring包

  1. 引入Spring配置文件beans.xml

  2. 替换mybatis-config.xml的配置

  3. 配置SqlSessionFactory,关联MyBatis

  4. 注册sqlSessionTemplate,关联sqlSessionFactory

  5. 增加Dao接口的实现类;私有化sqlSessionTemplate

  6. 注册bean实现

  7. 测试(service层)

 

声明式事务

事务

数据一致性,要么都成功,要么都失败

事务ACID原则

  • 原子性

  • 一致性

  • 隔离性(多个业务可能操作同一个资源时,防止数据损坏)

  • 持久性(提交后不再被影响,被持久化存储)

Spring中的事务管理

编程式事务管理

  • 将事务管理代码嵌到业务方法中来控制事务的提交和回滚

  • 缺点:必须在每个事务操作业务逻辑中包含额外的事务管理代码

声明式事务管理

  • 一般情况下比编程式事务好用

  • 将事务管理代码从业务方法中分离出来,以声明的方式来实现事务管理

  • 将事务管理作为横切关注点,通过aop方法模块化。Spring中通过Spring AOP框架支持声明式事务管理

使用Spring管理事务,注意头文件的约束导入 : tx

xmlns:tx="http://www.springframework.org/schema/tx"

http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx.xsd">

事务管理器

  • 无论使用Spring的哪种事务管理策略(编程式或者声明式)事务管理器都是必须的

  • 就是 Spring的核心事务管理抽象,管理封装了一组独立于技术的方法

  • JDBC事务

<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
      <property name="dataSource" ref="dataSource" />
</bean>