java模拟ATM功能(控制台连接Mysql数据库)

本文实例为大家分享了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();

}

}

}

以上是 java模拟ATM功能(控制台连接Mysql数据库) 的全部内容, 来源链接: utcz.com/z/339116.html

回到顶部