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