package com.wx.view; import java.util.Scanner; import com.wx.Money; import com.wx.User; import com.wx.dao.WxDao; public class Transfer { public static void main(String[] args) { System.out.println("*************微信转账模块**************"); Scanner sc = new Scanner(System.in); System.out.print("请输入您的微信账号:"); String uname = sc.next(); System.out.print("请输入您的微信密码:"); String pwd = sc.next(); //判断用户名和密码的结果 User u = new WxDao().checkLogin(uname, pwd); if(u!=null){ //登陆成功 System.out.println("恭喜您登陆成功!"); System.out.println("用户名:"+u.getUname()); //根据用户名获取用户账号金额 Money m = new WxDao().getMoney(uname); System.out.println("账户余额:"+m.getMoeny()); //获取好友名称与金额 System.out.print("请输入转账的好友名称:"); String fname = sc.next(); System.out.print("请输入转账金额:"); double money = sc.nextDouble(); //执行转账的操作 new WxDao().Transfer(money, uname, fname); //重新查询账户金额 m = new WxDao().getMoney(uname); System.out.println("转账成功!您的当前账户余额为"+m.getMoeny()); }else{ //登陆失败 System.out.println("您的账号或密码输入错误!!"); } } }
package com.wx.dao; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import com.wx.Money; import com.wx.User; public class WxDao { //校验用户名和密码 public User checkLogin(String user,String pwd){ PreparedStatement psmt = null; ResultSet rs = null; Connection con = null; User u = null; con = Tool.getConn2(); try { //根据用户输入的用户名和密码查找是否有匹配的数据 psmt = con.prepareStatement("select * from wx_user where uname=? and pwd = ?"); psmt.setString(1, user); psmt.setString(2, pwd); rs = psmt.executeQuery(); if(rs.next()){ //将查询的用户名和密码封装到用户对象u中 u= new User(); u.setUid(rs.getInt(1)); u.setUname(rs.getString(2)); u.setPwd(rs.getString(3)); } } catch (SQLException e) { e.printStackTrace(); }finally{ Tool.close(con, psmt); } return u; } //实现查询账户余额功能 public Money getMoney(String user){ PreparedStatement psmt = null; ResultSet rs = null; Connection con = null; Money m = new Money(); con = Tool.getConn2(); try { psmt = con.prepareStatement("select * from wx_money where uname=? "); psmt.setString(1, user); rs = psmt.executeQuery(); if(rs.next()){ m.setUname(rs.getString(1)); m.setMoeny(rs.getDouble(2)); } } catch (SQLException e) { e.printStackTrace(); }finally{ Tool.close(con, psmt); } return m; } //实现转账功能 public void Transfer(double money,String uname,String fname){ PreparedStatement psmt = null; Connection con = null; con = Tool.getConn2(); try { //减去用户账户中的金额 psmt = con.prepareStatement("update wx_money set money=money-? where uname=? "); psmt.setDouble(1, money); psmt.setString(2, uname); psmt.executeUpdate(); //增加好友账户中的金额 psmt = con.prepareStatement("update wx_money set money=money+? where uname=? "); psmt.setDouble(1, money); psmt.setString(2, fname); psmt.executeUpdate(); } catch (SQLException e) { e.printStackTrace(); } } }
package com.wx.dao; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.SQLException; public class Tool { public static Connection getConn2(){ Connection conn = null; try { Class.forName("com.mysql.jdbc.Driver"); conn = DriverManager.getConnection("jdbc:mysql://localhost/test","root","sys"); } catch (Exception e) { e.printStackTrace(); } return conn; } public static void close(Connection con,PreparedStatement psmt){ try { if(con!=null){ con.close(); } if(psmt!=null){ psmt.close(); } } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }
package com.wx; public class Money { String uname; double moeny; public String getUname() { return uname; } public void setUname(String uname) { this.uname = uname; } public double getMoeny() { return moeny; } public void setMoeny(double moeny) { this.moeny = moeny; } }
package com.wx; public class User { int uid; String uname; String pwd; public int getUid() { return uid; } public void setUid(int uid) { this.uid = uid; } public String getUname() { return uname; } public void setUname(String uname) { this.uname = uname; } public String getPwd() { return pwd; } public void setPwd(String pwd) { this.pwd = pwd; } }