转账

package DAY02;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.util.Scanner;

import javax.swing.plaf.synth.SynthScrollBarUI;

import day01.DBUtil;

/**
 * 转账操作 输入两个用户名,然后输入转账金额,操作为: 第一个用户给第二个用户转账指定的金额。 UPDATE userinfo SET
 * account=account+? 转入 WHEREusername=?
 * 
 * UPDATE userinfo SET account=account-?  WHERE username=?
 * 
 * @author Ward
 *
 */
public class demo9 {

    public static void main(String[] args) {

        try {

            System.out.println("请输入转出账号");
            Scanner scanner = new Scanner(System.in);
            String outUser = scanner.nextLine();
            System.out.println("请输入需要转入账号");
            String inUser = scanner.nextLine();
            System.out.println("请输入转账金额");
            Double account = Double.parseDouble(scanner.nextLine());
            Connection conn = DBUtil.getConnection();
            /*
             * 取消事务自动提交
             */
            conn.setAutoCommit(false);
            //转出操作            
            String sqlOut ="UPDATE userinfo SET account=account+? WHERE username=?";
            PreparedStatement psOut = conn.prepareStatement(sqlOut);
            psOut.setDouble(1, account);
            psOut.setString(2, outUser);
            int n=psOut.executeUpdate();
            if(n>0) {
                System.out.println("转出成功");
            }else {
                System.out.println("转出失败");
                System.out.println("转账失败");
                return;
            }
            //转入操作
            String sqlIn="UPDATE userinfo SET account=account-? WHERE username=?";
            PreparedStatement psIn=conn.prepareStatement(sqlIn);
            psIn.setDouble(1, account);
            psIn.setString(2, inUser);
            int m=psIn.executeUpdate();
            if(m>0) {
                System.out.println("转入成功");
                System.out.println("转账完毕");
                //提交事务
                conn.commit();
            }else {
                System.out.println("转入失败");
                //回滚事务
                conn.rollback();
                System.out.println("转账失败");
            }
        
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            DBUtil.closeConnection();
        }
    }

}
------------------------------------------------------------------------

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值