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. }
时间: 2024-08-14 11:39:39

java中ATM与数据库Mysql的连接的相关文章

Java 中的&quot;+&quot;号(加法和连接)

Java 中的"+"号(加法和连接) public class Test { public static void main(String[] args) { System.out.println(2 + 0 + 1 + 6 + "GeeksforGeeks"); System.out.println("GeeksforGeeks" + 2 + 0 + 1 + 6); System.out.println(2 + 0 + 1 + 5 + &quo

java远程访问linux服务器下mysql 无法连接的问题i

Connection conn = null; String url = "jdbc:mysql://xxx.xx.xx.xx:3306/connection"; try { Class.forName("com.mysql.jdbc.Driver"); System.out.println("成功加载"); String user = "root"; String passWord = "root"; c

PHP数据库--MySQL的连接

数据库——>按照数据结构来组织.存储和管理数据的容器 常用函数,要用什么函数可以上手册查,很方便,主要先会一些基础的就可以 mysql函数--(mysql貌似会被废弃,推荐使用mysqli或PDO): 1.面向过程:连接一个MySQL服务器--mysql_connect($servername, $username, $passwd); 例如: //生成一个连接$con = mysql_connect( 'localhost', 'root', '123456' ); if(!$con){die

Java中JDBC连接数据库(MySQL)

 JDBC连接数据库步骤. 一个简单详细的查询数据的例子. 封装连接数据库,释放数据库连接方法. 实现查询,插入,删除,更新等十一个处理数据库信息的功能.(包括事务处理,批量更新等) 把十一个功能都放在一起. 安装下载的数据库驱动程序jar包,不同的数据库需要不同的驱动程序(这本该是第一步,但是由于属于安装类,所以我们放在最后) 一.JDBC连接数据库(编辑)步骤(主要有六个步骤).  1.注册驱动: Class.forName("com.mysql.jdbc.Driver");显示的

Java中日期类型和mysql中日期类型进行整合

1. java与mysql中日期.时间类型总结: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 mysql(版本:5.1.50)的时间日期类型如下: datetime 8bytes xxxx-xx-xx xx:xx:xx 1000-01-01 00:00:00到9999-12-31 23:59:59 timestamp 4bytes xxxx-xx-xx xx:xx:xx 1970-01-01 00:00:01到2038 date 3bytes xxxx-x

Java中通过方法创建一个http连接并请求

1.Java代码创建一个连接并请求该连接返回的数据 doGet()方法,execute()方法中调用 package demo2.x.com; import java.io.BufferedReader; import java.io.InputStream; import java.io.InputStreamReader; import java.net.HttpURLConnection; import java.net.URL; import javax.print.attribute.

数据库-mysql数据连接

一:Mysql 连接的使用 在前几章节中,我们已经学会了如果在一张表中读取数据,这是相对简单的,但是在真正的应用中经常需要从多个数据表中读取数据. 本章节我们将向大家介绍如何使用 MySQL 的 JOIN 在两个或多个表中查询数据. 你可以在 SELECT, UPDATE 和 DELETE 语句中使用 Mysql 的 JOIN 来联合多表查询. JOIN 按照功能大致分为如下三类: INNER JOIN(内连接,或等值连接):获取两个表中字段匹配关系的记录. LEFT JOIN(左连接):获取左

通过DriveManager类实现数据库MySQL的连接

1.加载驱动 String drivername="com.mysql.jdbc.Driver";   //数据库驱动类路径 try{   Class.forName(drivername);                        //创建驱动   System.out.println("创建驱动成功!");  }catch(ClassNotFoundException e){   e.printStackTrace();  } 2.定义URL String

Python-Web框架之 - 利用SQLALchemy创建与数据库MySQL的连接, 详解用Flask时会遇到的一些大坑 !

经过这个小项目算是对Django与Flask这两个web框架有了新的认识 , Django本身的轮子非常齐全 , 套路也很固定 , 新手在接触Django框架时 , 不会陷入到处找轮子的大坑 ; 那么在使用Flask这个框架的时候会碰到哪些大坑呢 , 首先Flask是一个轻量级的web框架 , 之所以说它轻量级是因为它本身并没有多少轮子 , 那是不是就代表这些轮子需要我们自己来造呢 , 那倒不必 , 但是需要我们去找这些轮子 , 这恰恰是锻炼你的思维的时候 , 你要找轮子之前 , 你必须得知道需