Spring Transaction学习笔记--编程式事物声明

这篇博客详细介绍了Spring的编程式事务处理,重点聚焦在TransactionTemplate的使用上。内容包括编程式事务的两种方法,TransactionTemplate的工作流程,以及具体的使用示例,通过配置数据源、SessionFactoryBean、HibernateTransactionManager等进行事务管理。同时,文章还探讨了TransactionTemplate的源码分析。
摘要由CSDN通过智能技术生成

一、编程式事物流程

编程式事物实现主要有两种方法,一种是使用TransactionTemplate,另一中就是使用PlatformTransactionManager.这里我主要介绍前者的使用方式。

1、 准备jdbc.properties配置数据库需要的信息,将配置属性注入com.mchange.v2.c3p0.ComboPooledDataSourc,
    得到我们需要的数据源
2、 将DataSource数据源注入到org.springframework.orm.hibernate5.LocalSessionFactoryBean3、 将org.springframework.orm.hibernate5.LocalSessionFactoryBean注入到
    org.springframework.orm.hibernate5.HibernateTransactionManager中,使用Spring管理事务
4、 将org.springframework.orm.hibernate5.HibernateTransactionManager注入到
    org.springframework.transaction.support.TransactionTemplate5、 将org.springframework.orm.hibernate5.LocalSessionFactoryBean注入到DAO层
6、 将org.springframework.transaction.support.TransactionTemplate注入到Service层

两个与事务模板相关的类

TransactionCallBack<T>//如果方法执行没有返回值则覆写此类的方法
TransactionCallBackWithoutResult<T>//如果方法执行有返回值则覆写此类的方法

二、编程式事物例子

Student.java 使用注解的方式实现Object和数据库表的映射

package com.zbt;

import javax.persistence.*;

@Entity
@Table(name="stu")
public class Student {
   
    @Id
    @Column(name="id")
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private int id;
    @Column(name="first_name")
    private String firstName;
    @Column(name="last_name")
    private String lastName;
    @Column(name="address")
    private String address;
    @Column(name="phone")
    private String phone;
    //省略了getters 和 setters方法

上下文配置文件
第一步 :配置数据源

    <!--使用c3p0配置 使用配置文件的方式需要指明配置文件的位置-->
    <context:property-placeholder location="classpath:/jdbc.properties"/>
    <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
        <property name="driverClass" value="${jdbc.driverClass}"/>
        <property name="jdbcUrl" value="${jdbc.jdbcUrl}"/>
        <property name="user" value="${jdbc.user}"/>
        <property name="password" value="${jdbc.password}"/>
    </bean>

第二步:使用Spring注入org.springframework.orm.hibernate5.LocalSessionFactoryBean相关属性

<!--使用hibernateProperties + DataSource的方式取代hibernate.cfg.xml文件-->
    <bean id="sessionFactory" class="org.springframework.orm.hibernate5.LocalSessionFactoryBean">
        <property name="dataSource" ref=&#
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值