1.benas.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:aop
=
"http://www.springframework.org/schema/aop"
xmlns:context
=
"http://www.springframework.org/schema/context"
xsi:schemaLocation
=
"http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd"
>
<!-- 数据库连接池的配置 -->
<
bean
id
=
"dataSource"
class
=
"org.apache.commons.dbcp.BasicDataSource"
destroy-method
=
"close"
>
<
property
name
=
"driverClassName"
value
=
"${jdbc.driverClassName}"
/>
<
property
name
=
"url"
value
=
"${jdbc.url}"
/>
<
property
name
=
"username"
value
=
"${jdbc.username}"
/>
<
property
name
=
"password"
value
=
"${jdbc.password}"
/>
</
bean
>
<!-- jdbc事务管理器 -->
<
bean
id
=
"transactionManager"
class
=
"org.springframework.jdbc.datasource.DataSourceTransactionManager"
>
<
property
name
=
"dataSource"
ref
=
"dataSource"
></
property
>
</
bean
>
<
bean
id
=
"transactionTemplate"
class
=
"org.springframework.transaction.support.TransactionTemplate"
>
<
property
name
=
"transactionManager"
ref
=
"transactionManager"
></
property
>
</
bean
>
<
context:property-placeholder
location
=
"jdbc.properties"
/>
<!-- jdbcTemplate的配置 -->
<
bean
id
=
"namedParameterJdbcTemplate"
class
=
"org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate"
>
<
constructor-arg
ref
=
"dataSource"
></
constructor-arg
>
</
bean
>
<!-- 上面的全可以直接调用不用修改,如果要改数据库配置就改jdbc.properties -->
<
bean
id
=
"bankDao"
class
=
"com.lidongyang.dao.impl.BankDaoImpl"
>
<
property
name
=
"namedParameterJdbcTemplate"
ref
=
"namedParameterJdbcTemplate"
></
property
>
</
bean
>
<
bean
id
=
"bankService"
class
=
"com.lidongyang.service.impl.BankServiceImpl"
>
<
property
name
=
"bankDao"
ref
=
"bankDao"
></
property
>
<
property
name
=
"transactionTemplate"
ref
=
"transactionTemplate"
></
property
>
</
bean
>
</
beans
>
2.package com.lidongyang.service.impl;
import org.springframework.transaction.TransactionStatus;
import org.springframework.transaction.support.TransactionCallbackWithoutResult;
import org.springframework.transaction.support.TransactionTemplate;
import com.lidongyang.dao.Bank;
import com.lidongyang.service.BankService;
public class BankServiceImpl implements BankService{
private Bank bankDao;
private TransactionTemplate transactionTemplate;
public void setTransactionTemplate(TransactionTemplate transactionTemplate) {
this.transactionTemplate = transactionTemplate;
}
public void setBankDao(Bank bankDao) {
this.bankDao = bankDao;
}
@Override
public void TransactionMoney( final int money, final int userIdA, final int userIdB) {
// TODO Auto-generated method stub
transactionTemplate.execute(new TransactionCallbackWithoutResult() {
@Override
protected void doInTransactionWithoutResult(TransactionStatus arg0) {
// TODO Auto-generated method stub
bankDao.outMoney(userIdA,money );
bankDao.inMoney(userIdB,money );
}
});
}
}