简易java版atm项目代码,采用swing界面设计,mysql数据库连接。实现基本的用户注册登陆,主要功能有用户存,取,转账等。
项目源代码下载:
能力有限,望大神指正。
项目结构:
一:代码采用面向对象分层,将代码封装在相应的包中.整个系统有4个包,8个类:
即:1:com.myatm.account包中:
① Account(账户类)
2:com.myatm.dao包中:
② AccountDao(在数据库里面对用户信息进行操作)
::3::Com.myatm.swing包:
③ GetMoneyfm(用户取款界面)
④ Logonfm(用户登录界面)
⑤ Menufm(用户操作菜单)
⑥ Registeredfm(新用户注册)
⑦ StartViewfm(开始界面显示)
4:Com.myatm.util包:
⑧ BaseConnection(与本地数据库连接,以及数据库关闭)
文件夹res(里面存放一张开始界面背景图片)。
二:主要功能介绍:
1注册
2查询
3存款
4取款
5转账(一个账户到另一个账户)等。。。
项目运行部分截图:开始界面:
注册界面:
注册成功,数据库添加注册用户信息:
用户登录成功操作界面:
代码片段:
********数据库连接操作****** package com.myatm.util; /** * 数据库连接,以及数据库各种关闭 */ import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; public class BaseConnection { public static Connection getConnection(){ Connection conn=null; try { Class.forName("com.mysql.jdbc.Driver"); conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/atm","root","123456"); } catch (Exception e) { e.printStackTrace(); } return conn; } //preparedstatement SQL执行器对象 //resultset 结果集对象 public static void CloseRes(ResultSet rs,PreparedStatement ps,Connection conn){ try { if(rs!=null){ rs.close(); } if (ps != null) { ps.close(); } if (conn != null) { conn.close(); } } catch (SQLException e) { e.printStackTrace(); } } public static void CloseRes(PreparedStatement ps,Connection conn){ try { if (ps != null) { ps.close(); } if (conn != null) { conn.close(); } } catch (SQLException e) { e.printStackTrace(); } } public static void main(String[] args) { Connection conn=BaseConnection.getConnection(); System.out.println(conn); } } *******Dao层实现********** package com.myatm.dao; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.util.Scanner; import javax.swing.JOptionPane; import com.myatm.util.*; /** * * @author LiZhiLong * */ import com.myatm.account.*; public class AccountDao { public boolean searchname(String name){ boolean flag =false; Account account=new Account(); Connection conn=BaseConnection.getConnection(); PreparedStatement ps=null; ResultSet rs=null; try { String sql="select * from user where name=?"; ps=conn.prepareStatement(sql); ps.setString(1, name); rs=ps.executeQuery(); if(rs.next()){ flag=true; } } catch (SQLException e) { e.printStackTrace(); } return flag; } public boolean seachpassword(String password){ boolean flag =false; Account account=new Account(); Connection conn=BaseConnection.getConnection(); PreparedStatement ps=null; ResultSet rs=null; try { String sql="select * from user where password=?"; ps=conn.prepareStatement(sql); ps.setString(1, password); rs=ps.executeQuery(); if(rs.next()){ flag=true; } } catch (SQLException e) { e.printStackTrace(); } return flag; } public String showString(String name){ String info=null; Connection conn = BaseConnection.getConnection(); PreparedStatement ps = null; ResultSet rs = null; try { String sql="select * from user where name=?"; ps=conn.prepareStatement(sql); ps.setString(1,name); rs=ps.executeQuery(); while(rs.next()){ Account account=new Account(); account.setUsername(rs.getString("name")); account.setPassword(rs.getString("password")); account.setMoney(rs.getDouble("money")); JOptionPane.showMessageDialog(null, "您的账户名:"+account.getUsername()+"\n"+"当前余额:¥"+account.getMoney()+"\n","信息提示", JOptionPane.INFORMATION_MESSAGE); } } catch (Exception e) { }finally { BaseConnection.CloseRes(rs, ps, conn); } return info; } public double popMoney(String name){ Connection conn = BaseConnection.getConnection(); PreparedStatement ps = null; ResultSet rs = null; double usermoney=0.0; try { String sql = "select * from user where name=?"; ps = conn.prepareStatement(sql); ps.setString(1, name); rs = ps.executeQuery(); while(rs.next()){ Account account=new Account(); account.setUsername(rs.getString("name")); account.setPassword(rs.getString("password")); account.setMoney(rs.getDouble("money")); account.setMoney(rs.getDouble("money")); usermoney=account.getMoney(); } } catch (Exception e) { // TODO: handle exception }finally { BaseConnection.CloseRes(rs, ps, conn); } return usermoney; } public boolean putMoney(Account account){ boolean b=false; Connection conn = BaseConnection.getConnection(); PreparedStatement ps = null; String sql = "update user set money=? where name=?"; try { ps = conn.prepareStatement(sql); ps.setDouble(1, account.getMoney()); ps.setString(2, account.getUsername()); int a = ps.executeUpdate(); //System.out.println(account.getMoney()); if (a > 0) { b=true; } } catch (SQLException e) { e.printStackTrace(); } finally { BaseConnection.CloseRes(ps, conn); } return b; } public boolean getMoney(Account account){ boolean b=false; Connection conn = BaseConnection.getConnection(); PreparedStatement ps = null; String sql = "update user set money=? where name=?"; try { ps = conn.prepareStatement(sql); ps.setDouble(1, account.getMoney()); ps.setString(2, account.getUsername()); int a = ps.executeUpdate(); //System.out.println(account.getMoney()); if (a > 0) { b=true; } } catch (SQLException e) { e.printStackTrace(); } finally { BaseConnection.CloseRes(ps, conn); } return b; } //负载将传递过来的account对象存入到数据库里面 public void insert(Account account){ Connection conn=BaseConnection.getConnection(); PreparedStatement ps=null; String sql="insert into user (name,password)" +"values('"+account.getUsername()+"','"+account.getPassword()+"')"; System.out.println(sql); try { ps=conn.prepareStatement(sql); //这个方法是改变数据库数据 //int a代表改变数据库的条数如果a>0则代表操作成功。 int a=ps.executeUpdate(); if(a>0){ JOptionPane.showMessageDialog(null, "注册成功!", "信息提示",JOptionPane.INFORMATION_MESSAGE); }else { JOptionPane.showMessageDialog(null, "注册失败!", "信息提示",JOptionPane.ERROR_MESSAGE); } } catch (Exception e) { e.printStackTrace(); }finally { BaseConnection.CloseRes(ps, conn); } } }