1 package com.jdbc; 2 3 import java.sql.Connection; 4 import java.sql.DriverManager; 5 import java.sql.ResultSet; 6 import java.sql.Statement; 7 import java.util.Scanner; 8 9 public class Atm{ 10 static Statement sc=null; 11 static Scanner sca=new Scanner(System.in); 12 static String username; 13 public static void main(String[] args) throws Exception { 14 //该方法是 得到数据库的操作平台的。 15 getStatement(); 16 System.out.println("欢迎来到J18银行"); 17 System.out.println("请登录:"); 18 System.out.println("用户名:"); 19 username=sca.next(); 20 System.out.println("密码:"); 21 String password=sca.next(); 22 //调用查询账户方法,需要传入 用户名 和密码 返回int类型的值 23 int num=queryJ18(username,password); 24 //num==1 表示 数据库中有对应的用户名和密码 25 if(num==1){ 26 System.out.println("登录成功"); 27 //使用for死循环 进行操作 28 for(;;){ 29 System.out.println("请选择交易类型:"); 30 System.out.println("1、存钱 2、取钱 3、查询余额"); 31 int cz=sca.nextInt();//输入操作类型 32 if(cz==1){ 33 cun(); //调用存钱方法 34 }else if(cz==2){ 35 qu();//调用取钱方法 36 }else if(cz==3){ 37 query();//调用查询余额方法 38 }else{ 39 System.out.println("谢谢使用!"); 40 break; 41 } 42 } 43 } 44 else{ 45 System.out.println("登录失败!"); 46 } 47 } 48 /** 49 * 取钱方法 50 * @throws Exception 51 */ 52 public static void qu() throws Exception{ 53 System.out.println("请输入你的取款金额:"); 54 double money=sca.nextDouble(); 55 String sql="update J18 set money=money-"+money; 56 System.out.println(sql); 57 boolean a =sc.execute(sql); 58 if(!a){ 59 System.out.println("取款成功!"); 60 } 61 } 62 /** 63 * 存钱方法 64 */ 65 public static void cun() throws Exception{ 66 67 System.out.println("请输入你的存款金额:"); 68 double money=sca.nextDouble();//输入存款金额 69 //拼接 修改sql 70 String sql="update J18 set money=money+"+money; 71 //在 操作平台中 执行 sql语句 72 boolean a =sc.execute(sql); 73 //判断是否成功 74 if(!a){ 75 System.out.println("存款成功!"); 76 } 77 } 78 public static int queryJ18(String username,String password) throws Exception{ 79 //拼接查询sql 注意: 在拼接的时候,,字符串需要在前后加‘(单引号) 80 String sql="select * from J18 where Sname=‘"+username+"‘ and pwd=‘"+password+"‘"; 81 //在平台中执行查询sql ,并把查询的内容放在 ResultSet rs 里面 82 ResultSet rs=sc.executeQuery(sql); 83 //声明一个int 类型的变量 初始值 0 84 int num=0; 85 //如果查询的结果里面有值得话,就进入循环里面 86 while(rs.next()){ //rs.next() 是判断当前位置是否有数据,有就进入 没有就跳过 87 num++; 88 } 89 return num; 90 } 91 /* 92 * 查询方法 93 */ 94 public static void query() throws Exception{ 95 //拼接查询sql 注意: 在拼接的时候,,字符串需要在前后加‘(单引号) 96 String sql="select money from J18 where Sname=‘"+username+"‘"; 97 //在平台中执行查询sql ,并把查询的内容放在 ResultSet rs 里面 98 ResultSet rs=sc.executeQuery(sql); 99 //声明一个double类型的变量 赋值 0 100 double money=0; 101 //rs.next() 是判断当前位置是否有数据,有就进入 没有就跳过 102 while(rs.next()){ 103 //把查询出来的数据赋值给money 变量 104 money=rs.getDouble(1); 105 } 106 System.out.println("你的账户余额:"+money); 107 } 108 109 /** 110 * 得到数据库操作平台方法 111 * @throws Exception 112 */ 113 public static void getStatement() throws Exception{ 114 //1\加载驱动 115 Class.forName("com.mysql.jdbc.Driver"); 116 /** 117 * 数据库连接URL 118 * jdbc:mysql://IP:port/数据库名 119 * jdbc:mysql://localhost:3306/score 120 */ 121 String url="jdbc:mysql://localhost:3306/atm"; 122 //数据库用户名 123 String username="root"; 124 //数据库密码 125 String password="root"; 126 //使用驱动得到数据库连接,需要传入 url username password 127 Connection c=DriverManager.getConnection(url, username, password); 128 //得到数据库操作平台,平台 129 sc=c.createStatement(); 130 } 131 }
时间: 2024-10-22 03:40:26