博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
搭建事务管理转账案例的环境(强调:简化开发,以后DAO可以继承JdbcDaoSupport类)...
阅读量:5371 次
发布时间:2019-06-15

本文共 3304 字,大约阅读时间需要 11 分钟。

1. 步骤一:创建WEB工程,引入需要的jar包    * IOC的6个包    * AOP的4个包    * C3P0的1个包    * MySQL的驱动包    * JDBC目标2个包    * 整合JUnit测试包 2.步骤二:创建数据库的表结构
create database spring_day03;    use spring_day03;    create table t_account(        id int primary key auto_increment,        name varchar(20),        money double    );
3.步骤三:引入配置文件
* 引入配置文件        * 引入log4j.properties
4. 步骤四:引入applicationContext.xml
  * 基本配置为:

  *  使用C3P0连接池

* 先引入C3P0的jar包        * com.springsource.com.mchange.v2.c3p0-0.9.1.2.jar    * 编写配置文件        
5.步骤五:创建对应的包结构和类
* com.huida.demo1        * AccountService
package com.huida.demo1;public interface AccountService {    public void pay(String out,String in,double money);}
* AccountServlceImpl
package com.huida.demo1;import javax.annotation.Resource;import org.springframework.transaction.TransactionStatus;import org.springframework.transaction.annotation.Transactional;import org.springframework.transaction.support.TransactionCallbackWithoutResult;import org.springframework.transaction.support.TransactionTemplate;public class AccountServiceImpl implements AccountService{    @Resource(name="accountDao")    private AccountDaoImpl accountDao;        public void setAccountDao(AccountDaoImpl accountDao) {        this.accountDao = accountDao;    }    @Override    public void pay(String out,String in,double money) {        //扣钱        accountDao.outMoney(out, money);        //加钱        accountDao.inMoney(in, money);    }}
* AccountDao
package com.huida.demo1;public interface AccountDao {    public void outMoney(String out,double money);    public void inMoney(String in,double money);}
* AccountDaoImpl
package com.huida.demo1;import org.springframework.jdbc.core.support.JdbcDaoSupport;public class AccountDaoImpl extends JdbcDaoSupport implements AccountDao{    @Override    public void outMoney(String out, double money) {                this.getJdbcTemplate().update("update user set money =  money - ? where name = ?", money,out);    }    @Override    public void inMoney(String in, double money) {        this.getJdbcTemplate().update("update user set money = money + ? where name=?",money,in);            }}
6.步骤六:引入Spring的配置文件,将类配置到Spring中
7.步骤七:在业务层注入DAO ,在DAO中注入JDBC模板(强调:简化开发,以后DAO可以继承JdbcDaoSupport类)
8.所以总的applicationContext2.xml中的配置信息为:
9.步骤八:编写测试程序.
package com.huida.demo1;import javax.annotation.Resource;import org.junit.Test;import org.junit.runner.RunWith;import org.springframework.test.context.ContextConfiguration;import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;@RunWith(SpringJUnit4ClassRunner.class)@ContextConfiguration("classpath:applicationContext2.xml")public class Demo1 {    @Resource(name="accountService")    private AccountService accountService;        @Test    public void run1(){        accountService.pay("小明","小红",1000);    }}
10.单元测试run1方法,刷新spring-day03数据库中的user表,可以看到小明同学的钱减少了1000,小红同学的钱增加了1000。

转载于:https://www.cnblogs.com/wyhluckdog/p/10137283.html

你可能感兴趣的文章
利用bootstrap和webform的异步CRUD及分页
查看>>
Saiku资源帖
查看>>
解决手机页面中点击文本框,网页放大问题
查看>>
2-5
查看>>
牛客多校3 A-PACM Team(状压降维+路径背包)
查看>>
HDU - 4284 Travel(floyd+状压dp)
查看>>
1027 制作表格
查看>>
面向对象的介绍与特性
查看>>
typing-python用于类型注解的库
查看>>
20189215 2018-2019-2 《密码与安全新技术专题》第13周作业
查看>>
第四周作业
查看>>
一、HTML基础
查看>>
蓝牙进阶之路 (002) - HC-05与HC-06的AT指令的区别(转)
查看>>
mysql的limit经典用法及优化
查看>>
C#后台程序与HTML页面中JS方法互调
查看>>
mysql 同一个表中 字段a 的值赋值到字段b
查看>>
antiSMASH数据库:微生物次生代谢物合成基因组簇查询和预测
查看>>
UNICODE与ANSI的区别
查看>>
nginx 配置实例
查看>>
Flutter - 创建底部导航栏
查看>>