Spring事务处理(注解版)

  • Post author:
  • Post category:其他


准备:jdbc.properties

第一步:连接数据库

<context:property-placeholder location=”jdbc.properties”/>

<bean id=”dataSource” class=”com.alibaba.druid.pool.DruidDataSource”>

<property name=”driverClassName” value=”${jdbc.driver}”/>

<property name=”url” value=”${jdbc.url}”/>

<property name=”username” value=”${jdbc.username}”/>

<property name=”password” value=”${jdbc.password}”/>

</bean>

第二步:书写Dao层和Service层


//Dao层

public class AccountDao extends JdbcDaoSupport {


public AccountDao() {


}

//出钱

public void out(String name,double monney){


String sql=”update account set monney=monney-? where name=? “;

Object[] paramarr={monney,name};

this.getJdbcTemplate().update(sql,paramarr);

}

//金钱

public void in(String name,double monney){


String sql=”update account set monney=monney+? where name=? “;

Object[] paramarr={monney,name};

this.getJdbcTemplate().update(sql,paramarr);

}

}


//service层

public class AccountService {

private AccountDao accountDao;

public void setAccountDao(AccountDao accountDao){


this.accountDao=accountDao;

}

@Transactional

public void transaction(String name1,String name2,Double monney){


accountDao.out(name1,monney);

int num=1/0;

accountDao.in(name2,monney);

}

}

第三步:配置Dao层和Service层

<!–配置dao层–>

<bean id=”accountDao” class=”it.heima.dao_annotation.AccountDao”>

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

</bean>

<!–配置service层–>

<bean id=”accountService” class=”it.heima.service_annotation.AccountService”>

<property name=”accountDao” ref=”accountDao”/>

</bean>

第四步:开启事务注释

<!–开启事务注释–>

<tx:annotation-driven transaction-manager=”transactionManager”></tx:annotation-driven>

<bean id=”transactionManager” class=”org.springframework.jdbc.datasource.DataSourceTransactionManager”>

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

</bean>

第五步:测试



版权声明:本文为weixin_42333583原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。