千家信息网

java中ATM与数据库Mysql的连接

发表于:2024-10-01 作者:千家信息网编辑
千家信息网最后更新 2024年10月01日,import java.sql.*;import java.util.*;public class ATM1 {String code;int pass;double money;int i=1;//
千家信息网最后更新 2024年10月01日java中ATM与数据库Mysql的连接
  1. import java.sql.*;

  2. import java.util.*;

  3. public class ATM1 {

  4. String code;

  5. int pass;

  6. double money;

  7. int i=1;

  8. //检查登录

  9. public void checkLogin(){

  10. int i=1;

  11. while(i<=3){

  12. System.out.print("请输入您的卡号:");

  13. Scanner sc=new Scanner(System.in);

  14. String code_=sc.nextLine();

  15. System.out.print("请输入您的密码:");

  16. int pass_=sc.nextInt();

  17. try{

  18. //加载驱动

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

  20. //建立连接

  21. java.sql.Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/atmdb","root","root");

  22. //创建sql传送对象

  23. Statement stmt = conn.createStatement();

  24. //将sql语句通过sql传送对象传送到数据库并执行,返还结果集

  25. String sql = "select * from account where code='"+code_+"'and pass="+pass_;

  26. ResultSet rs = stmt.executeQuery(sql);

  27. //当账号、密码与sql中的账号与密码相对应的时候

  28. //把sql中的相关数据传送到目前变量以便进行数据操作

  29. if(rs.next()){

  30. code = rs.getString(1);

  31. pass = rs.getInt(2);

  32. money = rs.getDouble(3);

  33. loadSys();

  34. }

  35. rs.close();

  36. stmt.close();

  37. conn.close();

  38. }

  39. //捕获异常

  40. catch (Exception e){

  41. System.out.println(e);

  42. }

  43. //出现三次错误之后提示

  44. i++;

  45. if( i == 3){

  46. System.out.print("您已经输错三次密码,该卡已经被锁,请及时到相关网点咨询!");

  47. }

  48. }

  49. }

  50. //保存数据

  51. //注意;下面的关键字( "pass、code、money")要与数据库中的名字一样,避免出现错误

  52. public void saveDb(){

  53. try{

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

  55. java.sql.Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/atmdb","root","root");

  56. Statement stmt = conn.createStatement();

  57. String sql="update account set pass ="+pass+" where code='"+code+"'";

  58. //dode为String型,所以要用''括起来

  59. String sql1="update account set money="+money+" where code='"+code+"'";

  60. stmt.executeUpdate(sql); //update操作进行数据更新

  61. stmt.executeUpdate(sql1);

  62. stmt.close();

  63. conn.close();

  64. }

  65. catch (Exception e){

  66. System.out.println(e);

  67. }

  68. }

  69. //欢迎界面

  70. public static void welcome(){

  71. System.out.println("!*****************************************!");

  72. System.out.println("!*************欢迎使用华夏银行*************!");

  73. System.out.println("!*****************************************!");

  74. }

  75. //系统主界面

  76. public void loadSys(){

  77. System.out.println(".------------------------------------.");

  78. System.out.println("1 查询余额 存款 2");

  79. System.out.println("3 取款 修改密码 4");

  80. System.out.println("5 退出 ");

  81. System.out.println(".------------------------------------.");

  82. System.out.print("请输入相应的功能选项数字:");

  83. Scanner sz=new Scanner(System.in);

  84. int num=sz.nextInt();

  85. switch(num){

  86. case 1:

  87. chaxun();

  88. break;

  89. case 2:

  90. cunkuan();

  91. break;

  92. case 3:

  93. qukuan();

  94. break;

  95. case 4:

  96. xiugai();

  97. break;

  98. case 5:

  99. quit();

  100. break;

  101. default:

  102. System.out.println("您输入的数字有误!");

  103. loadSys();

  104. }

  105. }

  106. //查询余额

  107. public void chaxun(){

  108. System.out.println("您卡上的余额为:" +money);

  109. loadSys();

  110. }

  111. //存款

  112. public void cunkuan(){

  113. System.out.print("请输入存款金额:");

  114. Scanner ck=new Scanner(System.in);

  115. double money1=ck.nextDouble();

  116. money=money+money1;

  117. saveDb();

  118. System.out.println("您卡上的余额为:" +money);

  119. System.out.println("请收好您的卡!");

  120. loadSys();

  121. }

  122. //取款

  123. public void qukuan(){

  124. System.out.print("请输入取款金额:");

  125. Scanner qk=new Scanner(System.in);

  126. double money2=qk.nextDouble();

  127. if(money2>money){

  128. System.out.println("您的余额不足!");

  129. qukuan();

  130. }else{

  131. money=money-money2;

  132. saveDb();

  133. System.out.println("您卡上的余额为:" +money);

  134. System.out.println("请收好您的现金!");

  135. loadSys();

  136. }

  137. }

  138. //修改密码

  139. public void xiugai(){

  140. int cs = 0;

  141. System.out.print("请输入原密码:");

  142. Scanner mm=new Scanner(System.in);

  143. int pass1=mm.nextInt();

  144. System.out.print("请输入新密码:");

  145. int pass2=mm.nextInt();

  146. System.out.print("请再次输入新密码:");

  147. int pass3=mm.nextInt();

  148. if(pass==pass1&& pass2==pass3){

  149. System.out.println("修改密码成功!");

  150. pass=pass2;

  151. saveDb();

  152. loadSys();

  153. }else{

  154. if(cs<2){

  155. System.out.print("您输入的密码有误!");

  156. cs++;

  157. xiugai();

  158. }else{

  159. quit();

  160. }

  161. }

  162. }

  163. //退出

  164. public void quit(){

  165. System.exit(1);

  166. }

  167. //主函数

  168. public static void main(String args[]){

  169. /*try{

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

  171. java.sql.Connection conn = DriverManager.getConnection( "jdbc:mysql://localhost:3306/atmdb","root","root");

  172. Statement stmt = conn.createStatement();

  173. String sql = "select * from account";

  174. ResultSet rs = stmt.executeQuery(sql);

  175. while (rs.next()){

  176. String code = rs.getString(1);

  177. int pass = rs.getInt(2);

  178. double money = rs.getDouble(3);

  179. System.out.println(code+"|"+pass+"|"+money);

  180. }

  181. rs.close();

  182. stmt.close();

  183. conn.close();

  184. }

  185. catch(Exception e){

  186. System.out.println(e);

  187. }*/

  188. ATM1 atm = new ATM1();

  189. atm.welcome();

  190. atm.checkLogin();

  191. }

  192. }


输入 密码 余额 数据 存款 数据库 对象 数字 界面 账号 金额 错误 新密 查询 成功 关键 关键字 再次 函数 功能 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 员工办理开户存款数据库模型 山东商务外贸软件开发公司 服务器不同容量内存能一起用 农行软件开发体检offer 毛小孩儿(北京)网络技术 dcl数据库控制语言 恐龙谷软件开发领导者 淮南市翼腾网络技术有限公司 网络安全师要学什么意思 wlan添加新网络安全类型 汽车电子网络技术 华三服务器部署linux系统 新基建怎么设置网络安全观 网络安全指的是什么定义 网络技术工作者考试 服务器硬件入门基础知识pdf 东方通和普华服务器 小学网络安全教育材料 北京中油瑞飞软件开发 秒表软件开发流程图 长春市宏程网络技术怎么样 违反网络安全法将被记入 信誉好的浪潮服务器地址在哪里 电脑一体广告机为什么需要服务器 企业软件开发测试程序 为什么群星无法进入服务器 web基础软件开发与设计试题 昌平区进口软件开发推荐 西安中兴通讯软件开发奖金高吗 科技 互联网 保险
0