java模擬ATM功能(控制臺(tái)連接Mysql數(shù)據(jù)庫(kù))
本文實(shí)例為大家分享了java模擬ATM功能的具體代碼,供大家參考,具體內(nèi)容如下
有三個(gè)類:Test.java、Customer.java、CustomerDAO.java、ATMSystem.java
ATMSystem.java實(shí)現(xiàn)模擬ATM的功能
Customer.java創(chuàng)建一個(gè)用戶對(duì)象
CustomerDAO.java實(shí)現(xiàn)連接數(shù)據(jù)庫(kù)
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("注冊(cè)卡號(hào):");
int myid=input.nextInt();
System.out.println("注冊(cè)用戶名:");
String myname=input.next();
System.out.println("注冊(cè)密碼:");
String mypwd=input.next();
System.out.println("輸入存入金額:");
int mymoney=input.nextInt();
dao.Regist(myid, mypwd, myname, mymoney);
}
public boolean login()
{
System.out.println("請(qǐng)輸入密碼:");
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("卡號(hào):"+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("請(qǐng)輸入轉(zhuǎn)賬卡號(hào):");
int inid=input.nextInt();
System.out.println("請(qǐng)輸入轉(zhuǎn)賬金額:");
int money=input.nextInt();
dao.change(id, inid, money);
}
public void begin()
{
int num=-1;
int Num=0;
System.out.println("請(qǐng)選擇功能:");
System.out.println("1.注冊(cè) 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("請(qǐng)選擇功能:");
System.out.println("1.存款 2.取款 3.查詢 4.轉(zhuǎn)賬 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("登錄失敗,賬號(hào)、密碼錯(cuò)誤!");
}
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("卡號(hào)錯(cuò)誤!");
}
}
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("此卡已注冊(cè),請(qǐng)勿重復(fù)注冊(cè)!?。?!");
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("注冊(cè)成功!");
}
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();
}
}
}以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- java編寫簡(jiǎn)單的ATM存取系統(tǒng)
- Java實(shí)現(xiàn)ATM取款機(jī)程序
- Java 8 Stream Api 中的 map和 flatMap 操作方法
- java實(shí)現(xiàn)ATM取款項(xiàng)目
- java 使用線程做的一個(gè)簡(jiǎn)單的ATM存取款實(shí)例代碼
- Java實(shí)現(xiàn)銀行ATM系統(tǒng)
- Java項(xiàng)目實(shí)現(xiàn)模擬ATM機(jī)
- 淺談java8 stream flatMap流的扁平化操作
- Java實(shí)現(xiàn)簡(jiǎn)單銀行ATM功能
- Java基于控制臺(tái)界面實(shí)現(xiàn)ATM系統(tǒng)
相關(guān)文章
Java中的模板模式說(shuō)明與實(shí)現(xiàn)
這篇文章主要介紹了Java中的模板模式說(shuō)明與實(shí)現(xiàn),模板方法模式,又叫模板模式,在一個(gè)抽象類公開(kāi)定義了執(zhí)行它的方法的模板,它的子類可以更需要重寫方法實(shí)現(xiàn),但可以成為典型類中定義的方式進(jìn)行,需要的朋友可以參考下2023-10-10
SpringBoot實(shí)現(xiàn)掃碼登錄的示例代碼
本文主要介紹了SpringBoot實(shí)現(xiàn)掃碼登錄的示例代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-03-03
springboot整合JSR303校驗(yàn)功能實(shí)現(xiàn)代碼
這篇文章主要介紹了springboot整合JSR303校驗(yàn)功能實(shí)現(xiàn),JSR303校驗(yàn)方法有統(tǒng)一校驗(yàn)的需求,統(tǒng)一校驗(yàn)實(shí)現(xiàn)以及分組校驗(yàn),本文結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下2023-01-01
微信開(kāi)發(fā)準(zhǔn)備第二步 springmvc mybatis項(xiàng)目結(jié)構(gòu)搭建
這篇文章主要為大家詳細(xì)介紹了微信開(kāi)發(fā)準(zhǔn)備第二步,springmvc和mybatis項(xiàng)目結(jié)構(gòu)的搭建,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-04-04
java -jar指定端口或配置文件啟動(dòng)jar問(wèn)題
這篇文章主要介紹了java -jar指定端口或配置文件啟動(dòng)jar問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-09-09
淺談SpringBoot項(xiàng)目打成war和jar的區(qū)別
這篇文章主要介紹了淺談SpringBoot項(xiàng)目打成war和jar的區(qū)別,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-11-11
IntelliJ IDEA下Maven創(chuàng)建Scala項(xiàng)目的方法步驟
這篇文章主要介紹了IntelliJ IDEA下Maven創(chuàng)建Scala項(xiàng)目的方法步驟,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-06-06
使用JAR包中MANIFEST.MF的注意事項(xiàng)
這篇文章主要介紹了使用JAR包中MANIFEST.MF的注意事項(xiàng),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-07-07

