zoukankan      html  css  js  c++  java
  • 注解方式实现Spring声明式事务管理

    1、编写实体类

    public class Dept {
        private int deptId;
        private String deptName;
        public int getDeptId() {
            return deptId;
        }
        public void setDeptId(int deptId) {
            this.deptId = deptId;
        }
        public String getDeptName() {
            return deptName;
        }
        public void setDeptName(String deptName) {
            this.deptName = deptName;
        }
    }

    2、编写dao类

    @Repository
    public class DeptDao {
        
        @Resource
        private JdbcTemplate jdbcTemplate;
    
        public void save(Dept dept){
            String sql = "insert into t_dept (deptName) values(?)";
            jdbcTemplate.update(sql,dept.getDeptName());
        }
    }

    3、编写server类

    @Service
    public class DeptService {
    
        // 部门dao
        @Resource
        private DeptDao deptDao;
    
        @Transactionalpublic void save(Dept dept){
            logDao.insertLog();  // 保存日志  【自己开启一个事务】
            int i = 1/0;
            deptDao.save(dept);  // 保存部门
        }
    }

    4、bean.xml的配置

    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
        xmlns:p="http://www.springframework.org/schema/p"
        xmlns:context="http://www.springframework.org/schema/context"
        xmlns:aop="http://www.springframework.org/schema/aop"
        xmlns:tx="http://www.springframework.org/schema/tx"
        xsi:schemaLocation="http://www.springframework.org/schema/beans
             http://www.springframework.org/schema/beans/spring-beans.xsd
             http://www.springframework.org/schema/context
             http://www.springframework.org/schema/context/spring-context.xsd
             http://www.springframework.org/schema/aop
             http://www.springframework.org/schema/aop/spring-aop.xsd
             http://www.springframework.org/schema/tx
             http://www.springframework.org/schema/tx/spring-tx.xsd">
    
        
        <!-- 1. 数据源对象: C3P0连接池 -->
        <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
            <property name="driverClass" value="com.mysql.jdbc.Driver"></property>
            <property name="jdbcUrl" value="jdbc:mysql:///hib_demo"></property>
            <property name="user" value="root"></property>
            <property name="password" value="root"></property>
            <property name="initialPoolSize" value="3"></property>
            <property name="maxPoolSize" value="10"></property>
            <property name="maxStatements" value="100"></property>
            <property name="acquireIncrement" value="2"></property>
        </bean>
        
        <!-- 2. JdbcTemplate工具类实例 -->
        <bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
            <property name="dataSource" ref="dataSource"></property>
        </bean>
        
        <!-- 事务管理器类 -->
        <bean id="txManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
            <property name="dataSource" ref="dataSource"></property>
        </bean>
        
        <!-- 开启注解扫描 -->
        <context:component-scan base-package="包名"></context:component-scan>
        
        <!-- 注解方式实现事务: 指定注解方式实现事务 -->
        <tx:annotation-driven transaction-manager="txManager"/>
        
        <bean class="包名.类名"></bean>
    </beans>     
  • 相关阅读:
    转载高效的MySQL分页 枫
    [笔记]NFC笔记——WUP_REQ 和 WUP_RES 消息结构
    [笔记]NFC笔记——PSL_REQ 和 PSL_RES 消息结构
    [笔记]C语言中二级指针简单例子
    [笔记]NFC协议规范学习笔记汇总
    [笔记]C语言中预定义符 __FILE__, __LINE__, __FUNCTION__, __DATE__, __TIME__ 的使用演示
    [笔记]如何限制用户在5分钟之后才能重复同样操作
    [笔记]NFC笔记——ATR_RES 消息结构
    简单的具备自动检测行为的文本框控件
    多重AutoComplete的Textbox
  • 原文地址:https://www.cnblogs.com/imzhuo/p/5888986.html
Copyright © 2011-2022 走看看