java带界面数据库连接简易Atm项目

简易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);
	}
}

}


  • 21
    点赞
  • 55
    收藏
    觉得还不错? 一键收藏
  • 23
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 23
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值