如何实现Java控制台程序连接Mysql数据库模拟ATM操作?
- 内容介绍
- 文章标签
- 相关推荐
本文共计1508个文字,预计阅读时间需要7分钟。
本文以Java模拟ATM功能为例,分享了整体的代码示例。主要包括三个类:Test.java、Customer.java、CustomerDAO.java和ATMSystem.java。
ATMSystem.java
javapublic class ATMSystem { public static void main(String[] args) { CustomerDAO customerDAO=new CustomerDAO(); Customer customer=customerDAO.getCustomer(123456);
if (customer !=null) { System.out.println(欢迎使用ATM系统); System.out.println(用户: + customer.getName()); System.out.println(余额: + customer.getBalance());
// 模拟ATM操作 customer.withdraw(100); // 提现100元 customer.deposit(200); // 存入200元
System.out.println(操作完成,当前余额: + customer.getBalance()); } else { System.out.println(用户不存在); } }}
Customer.java
javapublic class Customer { private String id; private String name; private double balance;
public Customer(String id, String name, double balance) { this.id=id; this.name=name; this.balance=balance; }
public String getId() { return id; }
public String getName() { return name; }
public double getBalance() { return balance; }
public void deposit(double amount) { balance +=amount; }
public void withdraw(double amount) { if (amount <=balance) { balance -=amount; } else { System.out.println(余额不足); } }}
CustomerDAO.java
javaimport java.util.HashMap;import java.util.Map;
public class CustomerDAO { private Map customers=new HashMap();
public CustomerDAO() { // 初始化用户数据 customers.put(123456, new Customer(123456, 张三, 1000.0)); customers.put(654321, new Customer(654321, 李四, 2000.0)); }
public Customer getCustomer(String id) { return customers.get(id); }}
Test.java
javapublic class Test { public static void main(String[] args) { ATMSystem.main(args); }}
以上代码演示了如何使用Java模拟ATM系统。主要包含用户信息管理、账户余额查询、存取款操作等功能。
本文实例为大家分享了java模拟ATM功能的具体代码,供大家参考,具体内容如下
有三个类:Test.java、Customer.java、CustomerDAO.java、ATMSystem.java
ATMSystem.java实现模拟ATM的功能
Customer.java创建一个用户对象
CustomerDAO.java实现连接数据库
Test为主程序
ATMSystem.java:
package ATM; import java.util.Scanner; public class ATMSystem { CustomerDAO dao=new CustomerDAO(); Scanner input=new Scanner(System.in); private int id; public ATMSystem() { } public void Regist() { System.out.println("注册卡号:"); int myid=input.nextInt(); System.out.println("注册用户名:"); String myname=input.next(); System.out.println("注册密码:"); String mypwd=input.next(); System.out.println("输入存入金额:"); int mymoney=input.nextInt(); dao.Regist(myid, mypwd, myname, mymoney); } public boolean login() { System.out.println("请输入密码:"); String mypwd=input.next(); id=dao.login(mypwd); if(id==-1) { System.out.println("登录失败!"); return false; } else { System.out.println("登陆成功!"); return true; } } public void query(int id) { Customer cust=dao.query(id); System.out.println("********************"); System.out.println("卡号:"+cust.getid()); System.out.println("余额:"+cust.getmoney()); System.out.println("用户名:"+cust.getname()); System.out.println("********************"); } public void save() { System.out.println("输入存款金额:"); int money=input.nextInt(); dao.update_save(id, money); } public void get() { System.out.println("********************"); System.out.println("输入取款金额:"); int money=input.nextInt(); dao.update_get(id, money); System.out.println("********************"); } public void change() { System.out.println("请输入转账卡号:"); int inid=input.nextInt(); System.out.println("请输入转账金额:"); int money=input.nextInt(); dao.change(id, inid, money); } public void begin() { int num=-1; int Num=0; System.out.println("请选择功能:"); System.out.println("1.注册 2.登录"); Num=input.nextInt(); switch(Num) { case 1: Regist(); break; case 2: if(login()) { while(num!=0) { System.out.println("********************"); System.out.println("欢迎欢迎,热烈欢迎"); System.out.println("请选择功能:"); System.out.println("1.存款 2.取款 3.查询 4.转账 0.退出"); System.out.println("********************"); num=input.nextInt(); switch(num) { case 1: save(); break; case 2: get(); break; case 3: query(id); break; case 4: change(); break; case 0: System.out.println("谢谢使用!"); break; } } } else { System.out.println("登录失败,账号、密码错误!"); } break; default: break; } } }
Customer.java
package ATM; public class Customer { private int id; private String pwd; private int money; private String name; public int getid() { return id; } public void setid(int newid) { id=newid; } public String getpwd() { return pwd; } public void setpwd(String newpwd) { pwd=newpwd; } public String getname() { return name; } public void setname(String newname) { name=newname; } public int getmoney() { return money; } public void setmoney(int newmoney) { money=newmoney; } }
CustomerDAO.java:
package ATM; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; public class CustomerDAO { private Connection conn=null; private java.sql.PreparedStatement p=null; public CustomerDAO() { try { Class.forName("org.gjt.mm.mysql.Driver"); } catch (ClassNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } try { conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/mysql", "root", ""); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } public int login(String mypwd) { String sql="select * from mysql where pwd = ?"; try { p=conn.prepareStatement(sql); p.setString(1, mypwd); ResultSet rs=p.executeQuery(); if(rs.next()) { return rs.getInt("id"); } rs.close(); p.close(); conn.close(); } catch (SQLException e) { e.printStackTrace(); } return -1; } public Customer query(int id) { Customer cust=new Customer(); try { String sql="select * from mysql where id = ?"; p=conn.prepareStatement(sql); p.setInt(1, id); ResultSet rs=p.executeQuery(); if(rs.next()) { cust.setid(rs.getInt("id")); cust.setmoney(rs.getInt("money")); cust.setname(rs.getString("name")); cust.setpwd(rs.getString("pwd")); } } catch (Exception e) { // TODO: handle exception } return cust; } public void update_get(int id,int money) { String sql="select * from mysql where id = ?"; try { p=conn.prepareStatement(sql); p.setInt(1, id); ResultSet rs=p.executeQuery(); if(rs.next()) { if(rs.getInt("money")<money) { System.out.println("余额不足!"); } else { sql="update mysql set money = money - ? where id = ?"; p=conn.prepareStatement(sql); p.setInt(1, money); p.setInt(2, id); p.executeUpdate(); System.out.println("取款成功!"); } } } catch (Exception e) { // TODO: handle exception } } public void update_save(int id,int money) { String sql="update mysql set money = money + ? where id = ?"; try { p=conn.prepareStatement(sql); p.setInt(1, money); p.setInt(2, id); p.executeUpdate(); System.out.println("存款成功!"); } catch (Exception e) { // TODO: handle exception } } public void change(int myid,int inid,int money) { try { String sql="select * from mysql where id = ?"; p=conn.prepareStatement(sql); p.setInt(1, inid); ResultSet rs=p.executeQuery(); if(rs.next()) { sql="select * from mysql where id = ?"; p=conn.prepareStatement(sql); p.setInt(1, myid); rs=p.executeQuery(); if(rs.next()) { if(rs.getInt("money")<money) { System.out.println("余额不足!"); return; } else { sql="update mysql set money = money - ? where id = ?"; p=conn.prepareStatement(sql); p.setInt(1, money); p.setInt(2, myid); p.executeUpdate(); sql="update mysql set money = money + ? where id = ?"; p=conn.prepareStatement(sql); p.setInt(1, money); p.setInt(2, inid); p.executeUpdate(); } } } else { System.out.println("卡号错误!"); } } catch (Exception e) { // TODO: handle exception } } public void Regist(int myid,String mypwd,String myname,int mymoney) { String sql; try { sql="select * from mysql where id = ?"; p=conn.prepareStatement(sql); p.setInt(1, myid); ResultSet rs=p.executeQuery(); if(rs.next()) { System.out.println("此卡已注册,请勿重复注册!!!!"); return; } } catch (Exception e) { // TODO: handle exception } try { sql="insert into mysql(id,pwd,money,name) values(?,?,?,?)"; p=conn.prepareStatement(sql); p.setInt(1, myid); p.setString(2, mypwd); p.setInt(3, mymoney); p.setString(4, myname); p.executeUpdate(); System.out.println("注册成功!"); } catch (Exception e) { // TODO: handle exception } } }
Test.java:
package ATM; public class Test { public static void main(String[] args) { // TODO Auto-generated method stub ATMSystem ATM=new ATMSystem(); while(true) { ATM.begin(); } } }
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持易盾网络。
本文共计1508个文字,预计阅读时间需要7分钟。
本文以Java模拟ATM功能为例,分享了整体的代码示例。主要包括三个类:Test.java、Customer.java、CustomerDAO.java和ATMSystem.java。
ATMSystem.java
javapublic class ATMSystem { public static void main(String[] args) { CustomerDAO customerDAO=new CustomerDAO(); Customer customer=customerDAO.getCustomer(123456);
if (customer !=null) { System.out.println(欢迎使用ATM系统); System.out.println(用户: + customer.getName()); System.out.println(余额: + customer.getBalance());
// 模拟ATM操作 customer.withdraw(100); // 提现100元 customer.deposit(200); // 存入200元
System.out.println(操作完成,当前余额: + customer.getBalance()); } else { System.out.println(用户不存在); } }}
Customer.java
javapublic class Customer { private String id; private String name; private double balance;
public Customer(String id, String name, double balance) { this.id=id; this.name=name; this.balance=balance; }
public String getId() { return id; }
public String getName() { return name; }
public double getBalance() { return balance; }
public void deposit(double amount) { balance +=amount; }
public void withdraw(double amount) { if (amount <=balance) { balance -=amount; } else { System.out.println(余额不足); } }}
CustomerDAO.java
javaimport java.util.HashMap;import java.util.Map;
public class CustomerDAO { private Map customers=new HashMap();
public CustomerDAO() { // 初始化用户数据 customers.put(123456, new Customer(123456, 张三, 1000.0)); customers.put(654321, new Customer(654321, 李四, 2000.0)); }
public Customer getCustomer(String id) { return customers.get(id); }}
Test.java
javapublic class Test { public static void main(String[] args) { ATMSystem.main(args); }}
以上代码演示了如何使用Java模拟ATM系统。主要包含用户信息管理、账户余额查询、存取款操作等功能。
本文实例为大家分享了java模拟ATM功能的具体代码,供大家参考,具体内容如下
有三个类:Test.java、Customer.java、CustomerDAO.java、ATMSystem.java
ATMSystem.java实现模拟ATM的功能
Customer.java创建一个用户对象
CustomerDAO.java实现连接数据库
Test为主程序
ATMSystem.java:
package ATM; import java.util.Scanner; public class ATMSystem { CustomerDAO dao=new CustomerDAO(); Scanner input=new Scanner(System.in); private int id; public ATMSystem() { } public void Regist() { System.out.println("注册卡号:"); int myid=input.nextInt(); System.out.println("注册用户名:"); String myname=input.next(); System.out.println("注册密码:"); String mypwd=input.next(); System.out.println("输入存入金额:"); int mymoney=input.nextInt(); dao.Regist(myid, mypwd, myname, mymoney); } public boolean login() { System.out.println("请输入密码:"); String mypwd=input.next(); id=dao.login(mypwd); if(id==-1) { System.out.println("登录失败!"); return false; } else { System.out.println("登陆成功!"); return true; } } public void query(int id) { Customer cust=dao.query(id); System.out.println("********************"); System.out.println("卡号:"+cust.getid()); System.out.println("余额:"+cust.getmoney()); System.out.println("用户名:"+cust.getname()); System.out.println("********************"); } public void save() { System.out.println("输入存款金额:"); int money=input.nextInt(); dao.update_save(id, money); } public void get() { System.out.println("********************"); System.out.println("输入取款金额:"); int money=input.nextInt(); dao.update_get(id, money); System.out.println("********************"); } public void change() { System.out.println("请输入转账卡号:"); int inid=input.nextInt(); System.out.println("请输入转账金额:"); int money=input.nextInt(); dao.change(id, inid, money); } public void begin() { int num=-1; int Num=0; System.out.println("请选择功能:"); System.out.println("1.注册 2.登录"); Num=input.nextInt(); switch(Num) { case 1: Regist(); break; case 2: if(login()) { while(num!=0) { System.out.println("********************"); System.out.println("欢迎欢迎,热烈欢迎"); System.out.println("请选择功能:"); System.out.println("1.存款 2.取款 3.查询 4.转账 0.退出"); System.out.println("********************"); num=input.nextInt(); switch(num) { case 1: save(); break; case 2: get(); break; case 3: query(id); break; case 4: change(); break; case 0: System.out.println("谢谢使用!"); break; } } } else { System.out.println("登录失败,账号、密码错误!"); } break; default: break; } } }
Customer.java
package ATM; public class Customer { private int id; private String pwd; private int money; private String name; public int getid() { return id; } public void setid(int newid) { id=newid; } public String getpwd() { return pwd; } public void setpwd(String newpwd) { pwd=newpwd; } public String getname() { return name; } public void setname(String newname) { name=newname; } public int getmoney() { return money; } public void setmoney(int newmoney) { money=newmoney; } }
CustomerDAO.java:
package ATM; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; public class CustomerDAO { private Connection conn=null; private java.sql.PreparedStatement p=null; public CustomerDAO() { try { Class.forName("org.gjt.mm.mysql.Driver"); } catch (ClassNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } try { conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/mysql", "root", ""); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } public int login(String mypwd) { String sql="select * from mysql where pwd = ?"; try { p=conn.prepareStatement(sql); p.setString(1, mypwd); ResultSet rs=p.executeQuery(); if(rs.next()) { return rs.getInt("id"); } rs.close(); p.close(); conn.close(); } catch (SQLException e) { e.printStackTrace(); } return -1; } public Customer query(int id) { Customer cust=new Customer(); try { String sql="select * from mysql where id = ?"; p=conn.prepareStatement(sql); p.setInt(1, id); ResultSet rs=p.executeQuery(); if(rs.next()) { cust.setid(rs.getInt("id")); cust.setmoney(rs.getInt("money")); cust.setname(rs.getString("name")); cust.setpwd(rs.getString("pwd")); } } catch (Exception e) { // TODO: handle exception } return cust; } public void update_get(int id,int money) { String sql="select * from mysql where id = ?"; try { p=conn.prepareStatement(sql); p.setInt(1, id); ResultSet rs=p.executeQuery(); if(rs.next()) { if(rs.getInt("money")<money) { System.out.println("余额不足!"); } else { sql="update mysql set money = money - ? where id = ?"; p=conn.prepareStatement(sql); p.setInt(1, money); p.setInt(2, id); p.executeUpdate(); System.out.println("取款成功!"); } } } catch (Exception e) { // TODO: handle exception } } public void update_save(int id,int money) { String sql="update mysql set money = money + ? where id = ?"; try { p=conn.prepareStatement(sql); p.setInt(1, money); p.setInt(2, id); p.executeUpdate(); System.out.println("存款成功!"); } catch (Exception e) { // TODO: handle exception } } public void change(int myid,int inid,int money) { try { String sql="select * from mysql where id = ?"; p=conn.prepareStatement(sql); p.setInt(1, inid); ResultSet rs=p.executeQuery(); if(rs.next()) { sql="select * from mysql where id = ?"; p=conn.prepareStatement(sql); p.setInt(1, myid); rs=p.executeQuery(); if(rs.next()) { if(rs.getInt("money")<money) { System.out.println("余额不足!"); return; } else { sql="update mysql set money = money - ? where id = ?"; p=conn.prepareStatement(sql); p.setInt(1, money); p.setInt(2, myid); p.executeUpdate(); sql="update mysql set money = money + ? where id = ?"; p=conn.prepareStatement(sql); p.setInt(1, money); p.setInt(2, inid); p.executeUpdate(); } } } else { System.out.println("卡号错误!"); } } catch (Exception e) { // TODO: handle exception } } public void Regist(int myid,String mypwd,String myname,int mymoney) { String sql; try { sql="select * from mysql where id = ?"; p=conn.prepareStatement(sql); p.setInt(1, myid); ResultSet rs=p.executeQuery(); if(rs.next()) { System.out.println("此卡已注册,请勿重复注册!!!!"); return; } } catch (Exception e) { // TODO: handle exception } try { sql="insert into mysql(id,pwd,money,name) values(?,?,?,?)"; p=conn.prepareStatement(sql); p.setInt(1, myid); p.setString(2, mypwd); p.setInt(3, mymoney); p.setString(4, myname); p.executeUpdate(); System.out.println("注册成功!"); } catch (Exception e) { // TODO: handle exception } } }
Test.java:
package ATM; public class Test { public static void main(String[] args) { // TODO Auto-generated method stub ATMSystem ATM=new ATMSystem(); while(true) { ATM.begin(); } } }
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持易盾网络。

