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(); } }
时间: 2024-12-04 05:33:00