说明
省略了Java与数据库的链接,JDBCUtils类已封装数据库的select、update、delete、insert方法
Users类
package yaoyanru;
public class Users {
long id;
String name;
long password;
float money;
public long getId() {
return id;
}
public void setId(long id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public long getPassword() {
return password;
}
public void setPassword(long password) {
this.password = password;
}
public float getMoney() {
return money;
}
public void setMoney(float money) {
this.money = money;
}
@Override
public String toString() {
return "Users [id=" + id + ", name=" + name + ", password=" + password + ", money=" + money + "]";
}
}
Methods类
package yaoyanru;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Scanner;
public class Methods {
Users users = new Users();
// 注册账户
public void addUser(Users users) {
Connection conn = JDBCUtils.getConnection();
String sql = "insert into users(nama,id,password)" + "values(?,?,?)";
Object[] params = { users.getName(), users.getId(), users.getPassword() };
int num = JDBCUtils.executeUpdate(sql, params);
if (num == 1) {
System.err.println("注册成功");
} else {
System.out.println("注册失败");
}
sql = null;
JDBCUtils.closeAll(conn, null, null);
}
// 注销账户
public void delUser(Users users) {
Connection conn = JDBCUtils.getConnection();
String sql = "delete form users where id=?";
Object[] params = { users.getId() };
int num = JDBCUtils.executeUpdate(sql, params);
if (num == 1) {
System.err.println("注销成功");
} else {
System.out.println("注销失败");
}
sql = null;
JDBCUtils.closeAll(conn, null, null);
}
// 登录
public void login(long id, long password) {
Connection conn = JDBCUtils.getConnection();
String sql = "select name form users where id=? and password=?";
Object[] params = { id, password };
ResultSet res = JDBCUtils.executeQuery(sql, params);
if (res != null) {
System.out.println("登录成功");
} else {
System.out.println("登录失败");
}
sql = null;
JDBCUtils.closeAll(conn, null, null);
}
// 存款
public void sava(float money) {
Connection conn = JDBCUtils.getConnection();
String sql = "update users set money+? where id=?";
Object[] params = { money, users.getId() };
int rs = JDBCUtils.executeUpdate(sql, params);
if (rs == 1) {
System.out.println("存款成功");
} else {
System.out.println("存款失败");
}
sql = null;
JDBCUtils.closeAll(conn, null, null);
}
// 取款
public void draw(float money) throws SQLException {
Connection conn = JDBCUtils.getConnection();
if (query() < money) {
System.out.println("余额不足");
} else {
String sql1 = "update users set money-? where id=?";
Object[] params1 = { money, users.getId() };
int rs1 = JDBCUtils.executeUpdate(sql1, params1);
if (rs1 == 1) {
System.out.println("取款成功");
} else {
System.out.println("取款失败");
}
sql1 = null;
}
JDBCUtils.closeAll(conn, null, null);
}
// 查询余额
public float query() throws SQLException {
Connection conn = JDBCUtils.getConnection();
String sql = "select money form users where id=?";
Object[] params = { users.getId() };
ResultSet rs = JDBCUtils.executeQuery(sql, params);
users.setMoney(rs.getFloat("money"));
sql = null;
JDBCUtils.closeAll(conn, null, null);
return users.getMoney();
}
// 转账
public void transfer(long id) throws SQLException {
Connection conn = JDBCUtils.getConnection();
String sql = "select name form users where id=?";
Object[] params = { id };
ResultSet rs = JDBCUtils.executeQuery(sql, params);
System.out.println("转账人姓名:" + rs.getString("name"));
System.out.println("1.确认 2.返回");
Scanner scan = new Scanner(System.in);
if (scan.nextInt() == 1) {
System.out.println("请输入转账金额:");
float money = scan.nextFloat();
if (money > query()) {
System.out.println("余额不足");
} else {
String sql1 = "update users set money+? where id=?";
String sql2 = "update users set money-? where id=?";
Object[] params1 = { money, id };
Object[] params2 = { money, users.getId() };
int rs1 = JDBCUtils.executeUpdate(sql1, params1);
int rs2 = JDBCUtils.executeUpdate(sql2, params2);
if (rs1 == 1 || rs2 == 1) {
System.out.println("转账成功");
} else {
System.out.println("转账失败");
}
sql1 = null;
sql2 = null;
}
}
sql = null;
JDBCUtils.closeAll(conn, null, null);
}
}
UI类
package yaoyanru;
import java.sql.SQLException;
import java.util.Scanner;
public class UI {
public static void main(String[] args) throws SQLException {
Scanner scan = new Scanner(System.in);
Methods methods = new Methods();
Users users = new Users();
while (true) {
System.out.println("——欢迎使用ATM系统——");
System.out.println("请选择您的操作:");
System.out.println("1.注册账户");
System.out.println("2.登录");
int flag = scan.nextInt();
if (flag == 1) {
System.out.println("请输入姓名、身份证号、密码");
users.setName(scan.next());
users.setId(scan.nextLong());
users.setPassword(scan.nextLong());
methods.addUser(users);
break;
}
if (flag == 2) {
System.out.println("请输入身份证号、密码");
users.setId(scan.nextLong());
users.setPassword(scan.nextLong());
methods.login(users.getId(), users.getPassword());
System.out.println("请选择您的操作:");
System.out.println("1.查询余额");
System.out.println("2.存款");
System.out.println("3.取款");
System.out.println("4.转账");
System.out.println("5.注销账户");
System.out.println("6.退出");
switch (scan.nextInt()) {
case 1: {
methods.query();
System.out.println("余额:" + users.getMoney() + "元");
break;
}
case 2: {
System.out.println("请输入存款金额:");
methods.sava(scan.nextFloat());
break;
}
case 3: {
System.out.println("请输入取款金额:");
methods.draw(scan.nextFloat());
break;
}
case 4: {
System.out.println("请输入转账对象id:");
methods.transfer(scan.nextLong());
break;
}
case 5: {
methods.delUser(users);
break;
}
case 6: {
break;
}
default: {
System.out.println("非法操作!");
break;
}
}
} else {
System.out.println("非法操作!");
break;
}
}
}
}