仿银行系统

来源:互联网 发布:场景原画用什么软件 编辑:程序博客网 时间:2024/04/29 21:38

随便写的一个仿银行登录系统,没有设置安全

主方法:

import javax.swing.*;
import java.awt.event.*;
import java.awt.Toolkit;


public class Login extends JFrame implements ActionListener {
 
 JLabel _name,_password;
 JButton _logon,_exit;
 JTextField _jtfname;
 JPasswordField _jtfpassword;
 JPanel _jpname,_jppassword,_jpbutton;
 
    public Login() {
     super("欢迎登录");
     _name   =   new JLabel("用户名:");
     _password = new JLabel("密    码:");
     _logon = new JButton("登录");
     _logon.addActionListener(this);
     _exit  = new JButton("退出");
     _exit.addActionListener(this);
     _jtfname = new JTextField(8);
     _jtfpassword = new JPasswordField(8);
     _jpname = new JPanel();
     _jppassword = new JPanel();
     _jpbutton = new JPanel();
     
     _jpname.add(_name);
     _jpname.add(_jtfname);
     
     _jppassword.add(_password);
     _jppassword.add(_jtfpassword);
     
     _jpbutton.add(_logon);
     _jpbutton.add(_exit);
     
     add(_jpname,"North");
     add(_jppassword);
     add(_jpbutton,"South");
     
     pack();
     setVisible(true);
     int W = (int)Toolkit.getDefaultToolkit().getScreenSize().getWidth();
     int H = (int)Toolkit.getDefaultToolkit().getScreenSize().getHeight();
     this.setLocation((W-this.getWidth())/2,(H-this.getHeight())/2);
     this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    }
   
    public static void main (String[] args) {
     new Login(); 
 }
 public void actionPerformed(ActionEvent e){
  if(e.getSource()==_logon){
   String username = _jtfname.getText().trim();
      String password = new String(_jtfpassword.getPassword()).trim();
      DB db = new DB();
      if(db.login(username,password)){
       JOptionPane.showMessageDialog(this,"登录成功");
       new Select(username,password);
       this.dispose();
      }
      else
      {
       JOptionPane.showMessageDialog(this,"登录失败,请确认您的输入正确!"+'/n'+"或者已经成功连接数据库!!!");
      }
  }
  if(e.getSource()==_exit){
   System.exit(0);
  }
 }
}

 

选择界面:

import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
import java.awt.Toolkit;

public class Select extends JFrame implements ActionListener{

 JLabel _show,welcome,welcome1,welcome2,_empty;
 JPanel _jp1,_jp2,_jp3,_jp4,_jp5;
 JButton _get,_add,_query,_rework,_exit;
 String name,username,password;
 
    public Select(String username,String password) {
     super("欢迎您!");
     this.username = username;
     this.password = password;
     name = username;
     _show = new JLabel("欢迎您  "+name+"  先生/女士");
     welcome = new JLabel("欢迎您登录本行自动取款系统");
     welcome1= new JLabel("本行采取的是世界定级的安全技术,24小时监控");
     welcome2= new JLabel("保证您的信用卡不会被黑~~~~");
     _empty = new JLabel();
     _query = new JButton("查询余额");
     _query.addActionListener(this);
     _add = new JButton("存款");
     _add.addActionListener(this);
     _get = new JButton("取款");
     _get.addActionListener(this);
     _rework = new JButton("修改密码");
     _rework.addActionListener(this);
     _exit = new JButton("退出");
     _exit.addActionListener(this);
     _jp1 = new JPanel(new GridLayout(4,1));
     _jp2 = new JPanel(new GridLayout(3,1));
     _jp3 = new JPanel(new GridLayout(3,1));
     _jp4 = new JPanel();
     _jp5 = new JPanel();
     _jp1.add(_show);
     _jp1.add(welcome);
     _jp1.add(welcome1);
     _jp1.add(welcome2);
     _jp2.add(_query);
     _jp2.add(_add);
     _jp2.add(_get);
     _jp3.add(_empty);
     _jp3.add(_rework);
     _jp3.add(_exit);
     
     add(_jp1,"North");
     _jp4.add(_jp2);
     _jp5.add(_jp3);
     add(_jp4,"West");
     add(_jp5,"East");
     pack();
     setResizable(false);
     setVisible(true);
     int W = (int)Toolkit.getDefaultToolkit().getScreenSize().getWidth();
     int H = (int)Toolkit.getDefaultToolkit().getScreenSize().getHeight();
     this.setLocation((W-this.getWidth())/2,(H-this.getHeight())/2);
     this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    }
   
    private boolean isDigitString(String s){
     boolean b = true;
     for (int i = 0; i<s.length(); i++){
      char c= s.charAt(i);
      if(!Character.isDigit(c)){
       b = false;
       break;
      }
     }
     return b;
    }
   
    public void actionPerformed(ActionEvent e){
     if(e.getSource()==_query)
     {
      double  balance = new DB().queryBalance(username,password);
       JOptionPane.showMessageDialog(this,""+balance+"");
     }
     if(e.getSource()==_add)
     {
      String addmoney = JOptionPane.showInputDialog(this,"存款","0.0");
  if(addmoney==null)
      {
       JOptionPane.showMessageDialog(this,"您的操作有误!");
      }else{
      if(isDigitString(addmoney))
      {
       double money = Integer.parseInt(addmoney);
       new DB().addMoney(username,password,money); 
       JOptionPane.showMessageDialog(this,"操作成功!");
      }
      else
      {
        JOptionPane.showMessageDialog(this,"您的操作有误!");
        }}
     }
     if(e.getSource()==_get)
     {
      DB db = new DB();
      String addmoney = JOptionPane.showInputDialog(this,"您有"+db.queryBalance(username,password)+"人民币","0.0");
      if(isDigitString(addmoney))
      {
       double money = Integer.parseInt(addmoney);
       if(db.queryBalance(username,password)>=money)
       {
       new DB().getMoney(username,password,money); 
       JOptionPane.showMessageDialog(this,"操作成功!"); 
       }
   else
       {
        JOptionPane.showMessageDialog(this,"操作失败!");
       }
      }
     }
     if(e.getSource()==_rework)
     {
      DB db = new DB();
      String repassword = JOptionPane.showInputDialog(this,"");
      if(repassword==null)
      {
       JOptionPane.showMessageDialog(this,"取消成功!");
      }
   else
   {
   new DB().rework(username,repassword);
   if(db.rework(username,repassword)==repassword)
   {
   JOptionPane.showMessageDialog(this,"修改成功"+'/n'+"请重新登陆!");
      dispose();
      new Login(); 
   } 
  }
     }
     if(e.getSource()==_exit)
     {
      System.exit(0);
     }
    }
}

 

银行DAO:

import java.sql.*;
//对数据库test的操作类
public class DB{

 Connection con=null;
 PreparedStatement ps = null;
 ResultSet rs = null;
     
    public DB() {
     try{
      Class.forName("com.mysql.jdbc.Driver");
      con = DriverManager.getConnection(
       "jdbc:mysql://localhost:3306/test","root","123");  
     }catch(ClassNotFoundException e){
      
     }catch(SQLException e){
      
     }
    }
   
    public boolean login(String username,String password){
     boolean b = false;
     try{
      String sql = "select * from bank_user where name=? and password=?";
      ps = con.prepareStatement(sql);
      ps.setString(1,username);
      ps.setString(2,password);
      rs = ps.executeQuery();
      if(rs.next()){
       b = true;
      }
      else{
       b = false;
      }
     }catch(SQLException e){
      System.out.println (e.getMessage());
     }
     return b;
    }
   
    public double queryBalance(String username,String password){
     double b =0;
  String sql = "select * from bank_user where name=? and password=?";
  try{
   ps = con.prepareStatement(sql);
   ps.setString(1,username);
   ps.setString(2,password);
   rs = ps.executeQuery();
   if(rs.next()){
    b = rs.getDouble("balance");
   }
  }catch(SQLException e){
  }
  return b;
    }
   
    public void getMoney(String username,String password,double amount){
     try{
      String sql = "update bank_user set balance=balance-? where name=? and password=?";
      ps = con.prepareStatement(sql);
      ps.setDouble(1,amount);
      ps.setString(2,username);
      ps.setString(3,password);
      ps.executeUpdate();
     }catch(SQLException e){
     }
    }
   
    public void addMoney(String username,String password,double amount){
     try{
      String sql = "update bank_user set balance=balance+? where name=? and password=?";
      ps = con.prepareStatement(sql);
      ps.setDouble(1,amount);
      ps.setString(2,username);
      ps.setString(3,password);
      ps.executeUpdate();
     }catch(SQLException e){
     }
    }
    public String rework(String username,String repassword)
    {
     try{
      String sql = "update bank_user set password=? where name=?";
      ps = con.prepareStatement(sql);
      ps.setString(1,repassword);
      ps.setString(2,username);
      ps.executeUpdate();
     }catch(SQLException e){
     }
     return repassword;
    }
}

原创粉丝点击