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();
}
}
新闻名称:java连接MySQL。ATM
本文地址:
http://jkwzsj.com/article/ijopse.html