转账示例(一):Dao层面实现(本例采用QueryRunner来执行sql语句,数据源为C3P0)

缺点:Dao层面把Service层面的操作完成了,不利于后期的代码修改和重构

1.自行创建C3P0Util

account数据库

 

2.jar包

3.Dao层面

接口:

package com.learning.dao;

import com.learning.domain.Account;

public interface AccountDao {
    /**
     * 转账
     * @param fromname 转出用户
     * @param toname  转入用户
     * @param money  转账金额
     */
    public void updateAccount(String fromname,String toname,double money)throws Exception;
}

 实现类:

package com.learning.dao.impl;

import java.sql.SQLException;

import org.apache.commons.dbutils.QueryRunner;

import com.learning.dao.AccountDao;
import com.learning.util.C3P0Util;

public class AccountDaoImpl implements AccountDao {

    public void updateAccount(String fromname, String toname, double money) throws Exception {
        //创建一个QueryRunner对象
        QueryRunner qr = new QueryRunner(C3P0Util.getDataSource());
        qr.update("update account set money=money-? where name=?",money,fromname);
        qr.update("update account set money=money+? where name=?",money,toname);
    }

}

 

posted @ 2017-04-04 13:37  第九种格调的人生  阅读(275)  评论(0编辑  收藏  举报