/**
JDBC事务代理工厂
*/
@SuppressWarnings({"rawtypes", "unchecked"})
public class WalletTransactionFactory {
@Resource(name = "jdbcTemplateC3p0MySQLAgent")
public JdbcTemplate jdbcTemplateC3p0MySQLAgent;
public static final ThreadLocal threadLocal = new ThreadLocal();
private DataSourceTransactionManager txManager;
private TransactionTemplate transactionTemplate;
private JdbcTemplate jdbcTemplate;
private String userId;
private Map<String, String> map;
public WalletTransactionFactory(String userId) {
this.userId=userId;
jdbcTemplate= SpringBeanFactory.getBean("jdbcTemplateC3p0MySQLIwl", JdbcTemplate.class);
DataSource dataSource = jdbcTemplate.getDataSource();
txManager = new DataSourceTransactionManager(dataSource);
transactionTemplate = new TransactionTemplate(txManager );
threadLocal.set(dataSource);
}
public WalletTransactionFactory(Map<String, String> map){
this.map=map;
jdbcTemplate= SpringBeanFactory.getBean("jdbcTemplateC3p0MySQLIwl", JdbcTemplate.class);
DataSource dataSource = jdbcTemplate.getDataSource();
txManager = new DataSourceTransactionManager(dataSource);
transactionTemplate = new TransactionTemplate(txManager );
threadLocal.set(dataSource);
}
//删除普通会员
public boolean service() {
Object object=
transactionTemplate.execute(new TransactionCallback(){
public Object doInTransaction(TransactionStatus transactionStatus) {
//调用具体业务操作服务方法
System.out.println("批量操作,如果出错会全部自动回滚....");
int consumptionStatus=0;
int walletStatus=0;int drivingStatus=0;int carStatus=0;int enterpriseStatus=0;
int basicStatus=0;int userStatus=0;
try{
consumptionStatus=jdbcTemplate.update("delete from iwl_consumption_detail where user_id="+userId);
walletStatus=jdbcTemplate.update("delete from iwl_my_wallet where user_id="+userId);
walletStatus=jdbcTemplate.update("delete from iwl_my_wallet where user_id="+userId);
drivingStatus=jdbcTemplate.update("delete from iwl_driving_in_formation where user_id="+userId);
carStatus=jdbcTemplate.update("delete from iwl_car_source where user_id="+userId);
enterpriseStatus=jdbcTemplate.update("delete from iwl_enterprise_information where user_id="+userId);
basicStatus=jdbcTemplate.update("delete from iwl_user_basic_in_formation where user_id="+userId);
userStatus=jdbcTemplate.update("delete from iwl_user where id="+userId);
return true;
}
catch(Exception e){
transactionStatus.setRollbackOnly();
System.out.println("walletStatus"+walletStatus+"drivingStatus"+drivingStatus+"carStatus"+carStatus+"enterpriseStatus"+enterpriseStatus+"basicStatus"+basicStatus+"userStatus"+userStatus);
System.out.println("更新failure");
return false;
}
}
});
boolean b=(Boolean)object;
System.out.println("service"+b);
return b;
}
}