资源描述
Java小型银行管理系统源代码(图形界面)
accounts.java
package Account;
public class accounts {
protected int id;//银行账号
protected String password;//用户密码
protected String name;//用户型号
protected String personId;//身份账号
protected int accountType;//账号类型,0代表储蓄卡,1代表信用卡
protected double balance;//账户余额。之所以定义为protected是让她子类能够直接用,不需要经过方法来赋值。
protected double ceiling;
public String getPassword(){
return password;
}
public void setPassword(String password){
this.password=password;
}
public String getName(){
return name;
}
public void setName(String name){
this.name=name;
}
public String getPersonId(){
return personId;
}
public void setPersonId(String personId){
this.personId=personId;
}
public int getAccountType(){
return accountType;
}
public void setAccountType(int accountType){
this.accountType=accountType;
}
public double getBalance(){
return balance;
}
public void setBalance(double balance){
this.balance=balance;
}
public int getId(){
return id;
}
public void setId(int id){
this.id=id;
}
public double getCeiling(){
return ceiling;
}
public void setCeiling(double ceiling){
this.ceiling=ceiling;
}
//无参数结构方法
public accounts(){
}
//结构方法
public accounts(String password,String name,String personId,int accountType,
double balance,double ceiling){
super();
this.password=password;
this.name=name;
this.personId=personId;
this.accountType=accountType;
this.balance=balance;
this.ceiling=ceiling;
}
//存款
public void deposit(double money){
balance+=money;
}
//取款
public void withdraw(double money){
if(accountType==1){
if((balance+ceiling)<money){
System.out.println("对不起,已超出您信用额度!");
}
else{
balance-=money;
}
}else{
if(balance<money){
System.out.println("对不起,账户余额不足!");
}else{
balance-=money;
}
}
}
}
DBoper.java
package DB;
import java.sql.*;
import java.util.ArrayList;
import Account.accounts;
public class DBoper {
private Connection conn = null;
private Statement st = null;
private PreparedStatement pstmt = null;
private ResultSet rs = null;
private ArrayList<accounts> result;
//连接数据库
public Connection getConnection(){
try{
Class.forName("com.mysql.jdbc.Driver");
conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/bankmanager?useUnicode=true&characterEncoding=utf8","root","xuewei");
}catch(Exception e){
System.out.println("数据库连接失败");
}
return conn;
}
//修改 删除用户数据
public boolean accountDataUpdate(String sql){
conn=getConnection();
try{
pstmt=conn.prepareStatement(sql);
pstmt.executeUpdate();
//System.out.println("数据更新成功");
conn.close();
return true;
}catch(SQLException e){
e.printStackTrace();
//System.out.println("更新失败");
return false;
}
}
//依据id来修改统计
public boolean dataupdateid(accounts user, int id) {
conn = getConnection();
try {
String sql = "update account set username=?,userpwd=?,personId=?,accountType=?,balance=?,ceiling=? where id="
+ id;
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, user.getName());
pstmt.setString(2, user.getPassword());
pstmt.setString(3, user.getPersonId());
pstmt.setInt(4, user.getAccountType());
pstmt.setDouble(5, user.getBalance());
pstmt.setDouble(6, user.getCeiling());
pstmt.executeUpdate();
System.out.println("操作成功");
return true;
}
catch (SQLException e) {
e.printStackTrace();
System.out.println("操作失败");
return false;
}
}
//插入用户数据
public boolean accountDataInsert(accounts account){
conn=getConnection();
try{
pstmt=conn.prepareStatement("insert into account (username,userpwd,personId,accountType,balance,ceiling) values (?,?,?,?,?,?)");
pstmt.setString(1, account.getName());
pstmt.setString(2, account.getPassword());
pstmt.setString(3, account.getPersonId());
pstmt.setInt(4, account.getAccountType());
pstmt.setDouble(5, account.getBalance());
pstmt.setDouble(6, account.getCeiling());
pstmt.executeUpdate();
System.out.println("新用户数据插入成功");
conn.close();
return true;
}catch(SQLException e){
e.printStackTrace();
System.out.println("插入失败");
return false;
}
}
//查询数据
public ResultSet dataquery(String sql) {
conn = getConnection();
try {
pstmt = conn.prepareStatement(sql);
rs = pstmt.executeQuery();
}
catch (SQLException e) {
e.printStackTrace();
System.out.println("检索失败");
}
return rs;
}
public ResultSet testlist() {
try {
String sql = "select * from account where id =1001";
pstmt = conn.prepareStatement(sql);
System.out.println(sql);
rs = pstmt.executeQuery();
} catch (SQLException e) {
e.printStackTrace();
System.out.println("检索失败");
}
return rs;
}
public ArrayList<accounts> testt(int id) {
ArrayList<accounts> list = new ArrayList<accounts>();
conn = getConnection();
try {
String sql = "select * from account where id=" + id;
pstmt = conn.prepareStatement(sql);
rs = pstmt.executeQuery();
while (rs.next()) {
accounts user = new accounts();
user.setName(rs.getString("username"));
user.setPassword(rs.getString("userpwd"));
user.setPersonId(rs.getString("personId"));
user.setAccountType(rs.getInt("accountType"));
user.setBalance(rs.getDouble("balance"));
user.setCeiling(rs.getDouble("ceiling"));
list.add(user);
}
}
catch (SQLException e) {
e.printStackTrace();
System.out.println("检索失败");
}
return list;
}
//依据卡号和密码验证用户是否存在
public boolean verify(int id,String password){
conn=getConnection();
try{
pstmt=conn.prepareStatement("select * from account where id=? and userpwd=?");
pstmt.setInt(1, id);
pstmt.setString(2, password);
rs=pstmt.executeQuery();
if(rs.next()){
return true;
}else{
return false;
}
}catch(SQLException e){
e.printStackTrace();
return false;
}
}
/**
* 登录验证
*/
public accounts verifyAccount(int id, String password) {
boolean flag = verify(id, password);
if(flag){
accounts account=queryByIDandPassword(id, password);
return account;
}
else
{
System.out.println("用户不存在!");
return null;
}
}
//依据卡号和密码查询信息
public accounts queryByIDandPassword(int id,String password){
conn=getConnection();
try{
pstmt=conn.prepareStatement("select * from account where id=? and userpwd=?");
pstmt.setInt(1, id);
pstmt.setString(2, password);
rs=pstmt.executeQuery();
accounts account=new accounts();
while(rs.next()){
account.setId(rs.getInt("id"));
account.setName(rs.getString("username"));
account.setPassword(rs.getString("userpwd"));
account.setPersonId(rs.getString("personId"));
account.setAccountType(rs.getInt("accountType"));
account.setBalance(rs.getDouble("balance"));
account.setCeiling(rs.getDouble("ceiling"));
}
return account;
}catch(SQLException e){
e.printStackTrace();
return null;
}
}
//依据卡号查询信息
public accounts queryByID(int id){
conn=getConnection();
try{
pstmt=conn.prepareStatement("select * from account where id=?");
pstmt.setInt(1, id);
rs=pstmt.executeQuery();
accounts account=new accounts();
while(rs.next()){
account.setId(rs.getInt("id"));
account.setName(rs.getString("username"));
account.setPassword(rs.getString("userpwd"));
account.setPersonId(rs.getString("personId"));
account.setAccountType(rs.getInt("accountType"));
account.setBalance(rs.getDouble("balance"));
account.setCeiling(rs.getDouble("ceiling"));
}
return account;
}catch(SQLException e){
e.printStackTrace();
return null;
}
}
public static void main(String[] args) {
// TODO Auto-generated method stub
DBoper op=new DBoper();
ArrayList<accounts> list=op.testt(1001);
for(int i=0;i<list.size();i++){
accounts user=new accounts();
user=list.get(i);
System.out.println(user.getName());
System.out.println(user.getPassword());
System.out.println(user.getPersonId());
System.out.println(user.getAccountType());
System.out.println(user.getBalance());
System.out.println(user.getCeiling());
}
}
}
//图像界面文件夹
DN_SYSTEM
Default.java //主界面
package DN_SYSTEM;
import java.awt.Color;
import java.awt.Container;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.WindowConstants;
import Account.accounts;
import DB.DBoper;
public class Default extends JFrame implements ActionListener{
accounts account=DN_ATM.client;
DBoper db=new DBoper();
private JFrame jf;
private JButton btn0,btn1,btn2,btn3,btn4,btn5;
private Container c;
public void defaltDemo() {
//添加主界面卡片
//DN_ATM.id;
int id=DN_ATM.id;
//account=db.queryByID(id);
jf=new JFrame("DEFAULT");
c=jf.getContentPane();
c.setLayout(null);
c.setBackground(new Color(119,119,253));
JLabel lblwel = new JLabel("欢迎"+account.getName()+"用达能银行ATM系统");
lblwel.setBounds(20, 15, 350, 30);
c.add(lblwel);
JLabel lblwel1 = new JLabel("请选择您需要交易类型");
lblwel1.setBounds(120, 45, 350, 30);
c.add(lblwel1);
btn1 = new JButton("取款服务");
btn1.addActionListener(this);
btn1.setBounds(70, 90, 100, 30);
c.add(btn1);
btn2=new JButton("存款服务");
btn2.addActionListener(this);
btn2.setBounds(210, 90, 100, 30);
c.add(btn2);
btn3 = new JButton("查询余额");
btn3.addActionListener(this);
btn3.setBounds(70, 150, 100, 30);
c.add(btn3);
btn4 = new JButton("转账服务");
btn4.addActionListener(this);
btn4.setBounds(210, 150, 100, 30);
c.add(btn4);
btn5 = new JButton("注销账户");
btn5.addActionListener(this);
btn5.setBounds(70, 210, 100, 30);
c.add(btn5);
btn0 = new JButton("退出操作");
btn0.addActionListener(this);
btn0.setBounds(210, 210, 100, 30);
c.add(btn0);
jf.setVisible(true);
jf.setResizable(false);
jf.setSize(400,300);
jf.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
}
//事件处理
@Override
public void actionPerformed(ActionEvent e){
//取款服务
if(e.getSource().equals(btn1)){
OutMoney outmoney=new OutMoney();
outmoney.outMoney();
jf.dispose();
}
//存款服务
if(e.getSource().equals(btn2)){
InMoney inmoney=new InMoney();
inmoney.InMoney();
jf.dispose();
}
//查询余额
if(e.getSource().equals(btn3)){
GetBalance getbalance=new GetBalance();
getbalance.getBalance();
jf.dispose();
}
//转账服务
if(e.getSource().equals(btn4)){
TransferAccounts tranfer=new TransferAccounts();
tranfer.transferAccounts();
jf.dispose();
}
//注销账户
if(e.getSource().equals(btn5)){
String sql="delete from account where id="+account.getId();
boolean flag=db.accountDataUpdate(sql);
if(flag){
JOptionPane.showMessageDialog(this,"注销成功!");
}
else{
JOptionPane.showMessageDialog(this, "注销失败!");
}
}
if(e.getSource().equals(btn0)){
System.exit(0);
}
}
public static void main(String[] args) {
// TODO Auto-generated method stub
Default defaults=new Default();
defaults.defaltDemo();
}
}
DN_ATM.java //功效界面
package DN_SYSTEM;
import java.awt.CardLayout;
import java.awt.Color;
import java.awt.Container;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.AbstractButton;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JPasswordField;
import javax.swing.JTextField;
import DB.DBoper;
import Account.accounts;
public class DN_ATM extends JFrame implements ActionListener{
private JLabel lbljixu;
private JButton btngetcard;
private JButton btncard,btn010,btn_addAccount,btnsure,btnback;
private JTextField txt1;
private JPasswordField txt2;
private Container container;
private CardLayout Layout;
private JLabel lblwrong;
private JPanel panelfirst,panelmain;
public static int id;
static accounts client = null;
public DN_ATM(){
super("达能银行");
this.setSize(435, 350);
this.setLocation(500,250);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//设置不可改变窗口大小
this.setResizable(false);
}
//布局
public void setLayout(){
//用卡片布局
Layout = new CardLayout();
container = getContentPane();
container.setLayout(Layout);
//添加第一张卡片
panelfirst = new JPanel(null);
//设置卡片背景颜色
panelfirst.setBackground(new Color(119,119,253));
lbljixu = new JLabel("请放入磁卡,然后继续操作");
//设置卡片在Panel中位置
lbljixu.setBounds(140, 90, 350, 30);
//为第一张卡片添加一个Label
panelfirst.add(lbljixu);
//为第一张卡片添加一个按钮
btncard = new JButton("继续");
btncard.setBounds(310, 180, 80, 30);
//为按钮注册事件监听器
btncard.addActionListener(this);
//开始时设置按钮不可按
btncard.setEnabled(false);
panelfirst.add(btncard);
//为第一张卡片添加一个按钮
btngetcard = new JButton("取卡");
btngetcard.setEnabled(false);
btngetcard.setBounds(310, 220, 80, 30);
btngetcard.addActionListener(this);
panelfirst.add(btngetcard);
//添加登录输入卡片
panelmain = new JPanel(null);
panelmain.setBackground(new Color(119,119,253));
//添加登录输入卡号
JLabel lblnumber = new JLabel("请输入您银行卡卡号:");
panelmain.add(lblnumber);
lblnumber.setBounds(30, 30, 150, 30);
//设置文本框为密码型
txt1 = new JTextField(12);
//文本框不可选中
//txt1.enable(false);
panelmain.add(txt1);
txt1.setBounds(170, 30, 200, 30);
JLabel lblpwd = new JLabel("请输入您银行卡密码:");
panelmain.add(lblpwd);
lblpwd.setBounds(30, 80, 150, 30);
//设置文本框为密码型
txt2 = new JPasswordField(12);
//文本框不可选中
//txt2.enable(false);
panelmain.add(txt2);
//文本框输入内容用*显示
txt2.setEchoChar('*');
txt2.setBounds(170, 80, 200, 30);
//添加选择按钮
btnsure = new JButton("确定");
btnsure.addActionListener(this);
panelmain.add(btnsure);
btnsure.setBounds(70, 160, 80, 30);
//添加重输按钮
btn010 = new JButton("重输");
btn010.addActionListener(this);
panelmain.add(btn010);
btn010.setBounds(175,160,80,30);
btnback = new JButton("退出");
btnback.addActionListener(this);
panelmain.add(btnback);
btnback.setBounds(280, 160, 80, 30);
//开户
btn_addAccount = new JButton("开户");
btn_addAccount.setBounds(70, 220, 80, 30);
btn_addAccount.addActionListener(this);
panelmain.a
展开阅读全文