千家信息网

java中ATM与数据库Mysql的连接

发表于:2025-01-21 作者:千家信息网编辑
千家信息网最后更新 2025年01月21日,import java.sql.*;import java.util.*;public class ATM1 {String code;int pass;double money;int i=1;//
千家信息网最后更新 2025年01月21日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. }


0