mysql atm系统_java连接MySQL。ATM

这是一个Java实现的ATM系统,通过JDBC连接MySQL数据库进行用户注册、登录及交易操作。用户可以选择注册新账号,登录后可以进行存取款、查询余额和转账等操作。系统对输入进行了验证,如取款和存款必须为100的倍数。
摘要由CSDN通过智能技术生成

java连接MySQL。ATM

发布时间:2020-07-07 05:23:06

来源:51CTO

阅读:966

作者:叼草小毛驴

栏目:数据库

package bank;

import java.sql.Connection;

import java.sql.DriverManager;

import java.sql.ResultSet;

import java.sql.Statement;

import java.util.Scanner;

public class JDBC {

static Statement sc=null;

static Scanner sca=new Scanner(System.in);

static String username;

public static void main(String[] args) throws Exception {

//该方法是 得到数据库的操作平台的。

getStatement();

System.out.println("well come to bank of china");

System.out.println("请选择你需要的内容:"+"1.注册"+"2.登陆");

int m=sca.nextInt();

for(int j=m;;){

if(j==1){

System.out.println("请输入新的账号");

String bname=sca.next();

System.out.println("请输入新的密码");

String bpassword=sca.next();

String sql="select * from bank where bname='"+bname+"'";

ResultSet bq=sc.executeQuery(sql);//查询数据库

if(bq.next()){//判断数据库中是否也存在注册的帐号

System.out.println("该帐号已被注册");

}else{

sql="insert into bank (bname,bpassword) values('"+bname+"','"+bpassword+"')";

int i=sc.executeUpdate(sql);//更新数据库,用i来接收返回的数据

if(i!=0){

System.out.println("注册成功");

}else{

System.out.println("注册失败");

}

}

}

else if(j==2){

for(int w=1;w<=3;w++){

System.out.println("请登录:");

System.out.println("用户名:");

username=sca.next();

System.out.println("密码:");

String password=sca.next();

//调用查询账户方法,需要传入   用户名 和密码  返回int类型的值

int num=queryAccount(username,password);

//num==1 表示 数据库中有对应的用户名和密码

if(num==1){

System.out.println("登录成功");

//使用for死循环  进行操作

for(;;){

System.out.println("请选择交易类型:");

System.out.println("1.存钱   2.取钱   3.查询余额   4.转账    5.退卡");

int zx=sca.nextInt();//输入操作类型

if(zx==1){

cun(); //调用存钱方法

}else if(zx==2){

qu();//调用取钱方法

}else if(zx==3){

query();//调用查询余额方法

}else if(zx==4){

zhuan();//调用转账方法

}else if(zx==5){

System.out.println("已退出。谢谢使用!请收好您的卡片!");

System.exit(0);

}else{

System.out.println("输入错误,已退出。谢谢使用!");

break;

}

}

}else{

System.out.println("登录失败!您还有"+(3-w)+"次机会");

}

}

System.exit(0);

}

else{

System.out.println("输入错误,已退出。谢谢使用!请收好您的卡片!");

break;

}

}

}

/**

* 取钱方法

* @throws Exception

*/

public static void qu() throws Exception{

System.out.println("请输入你的取款金额:");

int bmoney=sca.nextInt();

if(bmoney%100==0){

String sql="update bank set bmoney=bmoney-"+bmoney;

System.out.println(sql);

boolean a =sc.execute(sql);

if(!a){

System.out.println("取款成功!");

}

}else{

System.out.println("本机只提供面值为100元人民币存取!");

}

}

/**

* 存钱方法

*/

public static void cun() throws Exception{

System.out.println("请输入你的存款金额:");

double bmoney=sca.nextDouble();//输入存款金额

//拼接  修改sql

String sql="update bank set bmoney=bmoney+"+bmoney;

//在 操作平台中  执行  sql语句

boolean a=sc.execute(sql);

//判断是否成功

if(bmoney%100==0){

if(!a){

System.out.println("存款成功!");

}

}else{

System.out.println("本机只提供面值为100元人民币存取!");

}

}

public static int queryAccount(String bname,String bpassword) throws Exception{

//拼接查询sql   注意:  在拼接的时候,,字符串需要在前后加'(单引号)

String sql="select * from bank where bname='"+bname+"' and bpassword='"+bpassword+"'";

//在平台中执行查询sql ,并把查询的内容放在  ResultSet rs 里面

ResultSet rs=sc.executeQuery(sql);

//声明一个int 类型的变量  初始值 0

int num=0;

//如果查询的结果里面有值得话,就进入循环里面

while(rs.next()){  //rs.next()  是判断当前位置是否有数据,有就进入 没有就跳过

num++;

}

return num;

}

/*

* 查询方法

*/

public static void query() throws Exception{

//拼接查询sql   注意:  在拼接的时候,,字符串需要在前后加'(单引号)

String sql="select bmoney from bank where bname='"+username+"'";

//在平台中执行查询sql ,并把查询的内容放在  ResultSet rs 里面

ResultSet rs=sc.executeQuery(sql);

//声明一个double类型的变量  赋值 0

double bmoney=0;

//rs.next()  是判断当前位置是否有数据,有就进入 没有就跳过

while(rs.next()){

//把查询出来的数据赋值给money 变量

bmoney=rs.getDouble(1);

}

System.out.println("你的账户余额:"+bmoney);

}

public static void zhuan() throws Exception{

System.out.println("请输入您要转入的账户:");

String zname=sca.next();

System.out.println("请确认您要转入的账户:");

String zrname=sca.next();

if(zname.equals(zrname)){

String sql="select * from bank where bname='"+zname+"'";

ResultSet bq=sc.executeQuery(sql);//查询数据库

if(bq.next()){

System.out.println("该账户存在,请输入转入金额:");

int zrmoney=sca.nextInt();//输入转入金额

//拼接  修改sql

String  sql1="update bank set bmoney=bmoney+"+zrmoney+" WHERE bname='"+zname+"';";

int m=sc.executeUpdate(sql1);

String sql2="update bank set bmoney=bmoney-"+zrmoney+" WHERE bname='"+username+"';";

int n=sc.executeUpdate(sql2);//更新数据库,用i来接收返回的数据

System.out.println("成功");

}else{

System.out.println("账户不存在");

}

}else{

System.out.println("俩次输入不一致");

}

}

/**

* 得到数据库操作平台方法

* @throws Exception

*/

public static void getStatement() throws Exception{

//1\加载驱动

Class.forName("com.mysql.jdbc.Driver");

/**

* 数据库连接URL

* jdbc:mysql://IP:port/数据库名

* jdbc:mysql://localhost:3306/score

*/

String url="jdbc:mysql://localhost:3306/atm";

//数据库用户名

String bname="root";

//数据库密码

String bword="556687a";

//使用驱动得到数据库连接,需要传入  url username password

Connection c=DriverManager.getConnection(url, bname, bword);

//得到数据库操作平台,平台

sc=c.createStatement();

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值