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();
}
}
}
------------------------------------------------------------------------