java基础写的银行系统

所学的java基础写的存取,转账,查看信息等
Java Mysql
在这里插入图片描述
有关的所有类和接口
UserDao

```jpackage com.libangzhen.dao;

import java.util.List;

import com.libangzhen.pojo.User;

public interface UserDao {
	
	int insertUser(User user);
	
	int deleteUser(String account);
	
	int updateUser(User user);
	
	User selectUser(String account,String password);
	
	List<User> selectListUser();
	
	boolean isExist(String account);
	
	int updateMoney(User user);
	
	int tranfer(User userOut,User userIn);
	
	User selectByAccount(String account);
	
}

UserRecordDao

package com.libangzhen.dao;

import java.util.List;

import com.libangzhen.pojo.UserRecord;

public interface UserRecordDao {
	
	List<UserRecord> selectAccountRecord(String account);
	
	int insertRecord(UserRecord userRecord);
	
}

UserDaoImpl

package com.libangzhen.daoImpl;

import java.util.List;

import org.apache.commons.dbutils.QueryRunner;
import org.apache.commons.dbutils.handlers.BeanHandler;
import org.apache.commons.dbutils.handlers.BeanListHandler;

import com.libangzhen.dao.UserDao;
import com.libangzhen.pojo.User;
import com.libangzhen.utils.DruidUtils;

public class UserDaoImpl implements UserDao {

	@Override
	public int insertUser(User user) {
		QueryRunner queryRunner = new QueryRunner();
		String  sql = "insert into user values(default,?,?,?,?,?,?)";
		System.out.println(user);
		try {
			int index = queryRunner.update(DruidUtils.getConnection(),sql,user.getAccount(),user.getUserName(),user.getSex(),user.getPhone(),user.getPassword(),user.getMoney());
			return index;
		} catch (Exception e) {
			// TODO: handle exception
		}
		return 0;
	}

	@Override
	public int deleteUser(String  account) {
		QueryRunner queryRunner = new QueryRunner();
		String  sql = "delete from user where account=?";
		try {
			int index = queryRunner.update(DruidUtils.getConnection(),sql,account);
			return index;
		} catch (Exception e) {
			e.printStackTrace();
		}
		return 0;
	}

	@Override
	public int updateUser(User user) {
		
		QueryRunner queryRunner = new QueryRunner();
		String  sql = "update user set userName=?,sex=?,phone=?,password=? where account=?";
		try {
			int index = queryRunner.update(DruidUtils.getConnection(),sql,user.getUserName(),user.getSex(),user.getPhone(),user.getPassword(),user.getAccount());
			return index;
		} catch (Exception e) {
			e.printStackTrace();
		}
		return 0;
	}

	@Override
	public User selectUser(String account, String password) {
		QueryRunner queryRunner = new QueryRunner();
		String  sql = "select * from user where account=? and password=?";
		try {
			User user = queryRunner.query(DruidUtils.getConnection(),sql,new BeanHandler<>(User.class),account,password);
			return user;
		} catch (Exception e) {
			e.printStackTrace();
		}
		return null;
	}

	@Override
	public List<User> selectListUser() {
		QueryRunner queryRunner = new QueryRunner();
		String  sql = "select * from user";
		try {
			List<User> list = queryRunner.query(DruidUtils.getConnection(),sql,new BeanListHandler<>(User.class));
			return list;
		} catch (Exception e) {
			e.printStackTrace();
		}
		return null;
	}

	@Override
	public boolean isExist(String account) {
		QueryRunner queryRunner = new QueryRunner();
		String  sql = "select * from user where account=?";
		try {
			User user = queryRunner.query(DruidUtils.getConnection(), sql,new BeanHandler<>(User.class),account);
			if (user==null) {
				return false;
			}else {
				return true;
			}
		} catch (Exception e) {
			e.printStackTrace();
		}
		return false;
	}

	@Override
	public int updateMoney(User user) {
		QueryRunner queryRunner = new QueryRunner();
		String  sql = "update user set money=? where account=?";
		try {
			int index = queryRunner.update(DruidUtils.getConnection(),sql,user.getMoney(),user.getAccount());
			return index;
		} catch (Exception e) {
			e.printStackTrace();
		}
		return 0;
	}

	@Override
	public int tranfer(User userOut, User userIn) {
		QueryRunner queryRunner = new QueryRunner();
		String  sql = "update user set money=? where account=?";
		String sqls = "update user set money=? where account=?";
		try {
			int index = queryRunner.update(DruidUtils.getConnection(),sql,userOut.getMoney(),userOut.getAccount());
			int index1 = queryRunner.update(DruidUtils.getConnection(),sqls,userIn.getMoney(),userIn.getAccount());
			if (index>0 && index1>0) {
				return 1;
			}
		} catch (Exception e) {
			e.printStackTrace();
		}
		return 0;
	}

	@Override
	public User selectByAccount(String account) {
		QueryRunner queryRunner = new QueryRunner();
		String  sql = "select * from user where account=?";
		try {
			User user = queryRunner.query(DruidUtils.getConnection(), sql,new BeanHandler<>(User.class),account);
			return user;
		} catch (Exception e) {
			e.printStackTrace();
		}
		return null;
	}

}

UserRecordImpl

package com.libangzhen.daoImpl;

import java.util.List;

import org.apache.commons.dbutils.QueryRunner;
import org.apache.commons.dbutils.handlers.BeanListHandler;

import com.libangzhen.dao.UserRecordDao;
import com.libangzhen.pojo.UserRecord;
import com.libangzhen.utils.DruidUtils;

public class UserRecordDaoImpl implements UserRecordDao{

	@Override
	public List<UserRecord> selectAccountRecord(String account) {
		QueryRunner queryRunner = new QueryRunner();
		String  sql = "select * from userrecord where account=?";
		try {
			List<UserRecord> list = queryRunner.query(DruidUtils.getConnection(),sql,new BeanListHandler<>(UserRecord.class),account);
			return list;
		} catch (Exception e) {
			e.printStackTrace();
		}
		return null;
	}

	@Override
	public int insertRecord(UserRecord userRecord) {
		QueryRunner queryRunner = new QueryRunner();
		String  sql = "insert into userrecord values(default,?,?,?,?)";
		try {
			int index = queryRunner.update(DruidUtils.getConnection(),sql,userRecord.getAccount(),userRecord.getUserName(),userRecord.getTime(),userRecord.getMoney());
			return index;
		} catch (Exception e) {
			e.printStackTrace();
		}
		return 0;
	}

}

LoginUI

package com.libangzhen.ui;

import java.awt.Color;
import java.awt.Container;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JComponent;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPasswordField;
import javax.swing.JTextField;

import com.libangzhen.pojo.User;
import com.libangzhen.service.UserService;
import com.libangzhen.serviceImpl.UserServiceImpl;

public class LoginUI extends JFrame{
	
	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	
	private UserService userservice = new UserServiceImpl();
	
	public static void main(String[] args) {
		new LoginUI();
	}
	
	public LoginUI() {
		Container container = getContentPane();
		setLayout(null);
		setTitle("银行登录");	//设置框体的标题
		setLayeredPane(getLayeredPane());
		setBounds(700, 200, 600, 500);    //框架的大小和位置
		
		JLabel jlAccount = new JLabel("账号");
		jlAccount.setBounds(170, 130, 100, 40);
		jlAccount.setForeground(Color.white);
		jlAccount.setFont(new java.awt.Font("宋体", 0, 24));	//设置字体大小
		container.add(jlAccount);
		
		JLabel JlPassword = new JLabel("密码");
		JlPassword.setBounds(170, 230, 100, 40);
		JlPassword.setForeground(Color.white);
		JlPassword.setFont(new java.awt.Font("宋体", 0, 24));	//设置字体大小
		container.add(JlPassword);
		
		JTextField jtAccount = new JTextField();
		jtAccount.setBounds(230, 135, 150, 30);
		jtAccount.setFont(new java.awt.Font("宋体", 0, 24));	//设置字体大小
		container.add(jtAccount);
		
		JPasswordField jtPassword = new JPasswordField();
		jtPassword.setBounds(230, 237, 150, 30);
		jtPassword.setFont(new java.awt.Font("宋体", 0, 24));	//设置字体大小
		container.add(jtPassword);
		
		JButton jbRegist = new JButton("注册");
		jbRegist.setBounds(150, 300, 90, 33);
		jbRegist.setFont(new java.awt.Font("宋体", 0, 20));	//设置字体大小
		container.add(jbRegist);
		jbRegist.addActionListener(new ActionListener() {
			
			@Override
			public void actionPerformed(ActionEvent e) {
				dispose();
				new RegistUI();
			}
		});
		
		JButton jbLogin = new JButton("登录");
		jbLogin.setBounds(350, 300, 90, 33);
		jbLogin.setFont(new java.awt.Font("宋体", 0, 20));	//设置字体大小
		container.add(jbLogin);
		jbLogin.addActionListener(new ActionListener() {
			
			@Override
			public void actionPerformed(ActionEvent e) {
				String account = jtAccount.getText();
				@SuppressWarnings("deprecation")
				String password = jtPassword.getText();
				if (account.equals("")) {
					JOptionPane.showMessageDialog(null, "用户名不能为空");
				}else {
					if (password.equals("")) {
						JOptionPane.showMessageDialog(null, "密码不能为空");
					}else {
						User user = userservice.selectUser(account, password);
						if (user != null) {
							dispose();
							new Menu(user);
						}else {
							JOptionPane.showMessageDialog(null, "用户名或密码错误");
						}
					}
				}
			}
		});
		
		ImageIcon icon = new ImageIcon("image/1.jpg");
		JLabel image = new JLabel(icon);
		((JComponent) container).setOpaque(false);
		image.setBounds(0,0, 600, 500);
		container.add(image);
		
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		setVisible(true);//可视化
	}
}

DepositUI

package com.libangzhen.ui;

import java.awt.Container;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.Timestamp;
import java.text.SimpleDateFormat;
import java.util.Date;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JTextField;

import com.libangzhen.pojo.User;
import com.libangzhen.pojo.UserRecord;
import com.libangzhen.service.UserRecordService;
import com.libangzhen.service.UserService;
import com.libangzhen.serviceImpl.UserRecordServiceImpl;
import com.libangzhen.serviceImpl.UserServiceImpl;

public class DepositUI extends JFrame{
	
	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	
	private UserService userService = new UserServiceImpl();
	
	private UserRecordService userRecordService = new UserRecordServiceImpl();
	
	public DepositUI(User user) {
		Container container = getContentPane();
		setLayout(null);
		setTitle("存款");	//设置框体的标题
		setLayeredPane(getLayeredPane());
		setBounds(700, 200, 600, 500);    //框架的大小和位置
		
		JLabel jLabel = new JLabel("请输入存款金额");
		jLabel.setBounds(120, 70, 200, 40);
		jLabel.setFont(new java.awt.Font("宋体", 0, 20));	//设置字体大小
		container.add(jLabel);
		
		JTextField jField = new JTextField();
		jField.setBounds(220, 150, 100, 30);
		jField.setFont(new java.awt.Font("宋体", 0, 20));	//设置字体大小
		container.add(jField);
		
		JButton jbCancel  = new JButton("返回");
		jbCancel.setBounds(120, 250, 70, 30);
		container.add(jbCancel);
		jbCancel.addActionListener(new ActionListener() {
			
			@Override
			public void actionPerformed(ActionEvent e) {
				dispose();
				new Menu(user);
			}
		});
		JButton jbSure  = new JButton("存款");
		jbSure.setBounds(330, 250, 70, 30);
		container.add(jbSure);
		jbSure.addActionListener(new ActionListener() {
			
			@Override
			public void actionPerformed(ActionEvent e) {
				String money_1 = jField.getText();
				if (money_1.equals("")) {
					JOptionPane.showMessageDialog(null, "金额不能为空");
				}else {
					try {
						double money_2 = Double.parseDouble(money_1);
						double money = user.getMoney() + money_2;
						user.setMoney(money);
						int index = userService.updateMoney(user);
						if (index>0) {
							Date date = new Date();
							Timestamp timestamp1 =  new Timestamp(date.getTime());
							String aString = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(timestamp1);
							UserRecord userRecord = new UserRecord();
							userRecord.setAccount(user.getAccount());
							userRecord.setUserName(user.getUserName());
							userRecord.setTime(aString);
							userRecord.setMoney(money_2);
							int index1 = userRecordService.insertRecord(userRecord);
							if(index1>0) {
								JOptionPane.showMessageDialog(null, "存款成功");
							}else {
								JOptionPane.showMessageDialog(null, "存款失败");
								dispose();
								new DepositUI(user);
							}
						}else {
							JOptionPane.showMessageDialog(null, "存款失败");
						}
					} catch (Exception e2) {
						JOptionPane.showMessageDialog(null, "输入金额错误");
					}
				}
			}
		});
		
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		setVisible(true);//可视化
	}
}

MenuUI

package com.libangzhen.ui;

import java.awt.Color;
import java.awt.Container;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JComponent;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;

import com.libangzhen.pojo.User;
import com.libangzhen.service.UserService;
import com.libangzhen.serviceImpl.UserServiceImpl;

public class Menu extends JFrame{
	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	
	private UserService userService = new UserServiceImpl();
	
	public Menu(User user) {
		Container container = getContentPane();
		setLayout(null);
		setTitle("银行菜单");	//设置框体的标题
		setLayeredPane(getLayeredPane());
		setBounds(700, 150, 700, 800);    //框架的大小和位置
		
		JButton jbDeposit = new JButton("存款");
		jbDeposit.setBounds(50, 50, 150, 80);
		jbDeposit.setFont(new java.awt.Font("宋体", 0, 27));	//设置字体大小
		jbDeposit.setContentAreaFilled(false);//透明
		jbDeposit.setBorderPainted(false); //消去边框
		jbDeposit.setForeground(Color.red);
		container.add(jbDeposit);
		jbDeposit.addActionListener(new ActionListener() {
			
			@Override
			public void actionPerformed(ActionEvent e) {
				dispose();
				new DepositUI(user);
			}
		});
		
		JButton jbWithdrawal = new JButton("取款");
		jbWithdrawal.setBounds(450, 50, 150, 80);
		jbWithdrawal.setFont(new java.awt.Font("宋体", 0, 27));	//设置字体大小
		jbWithdrawal.setContentAreaFilled(false);//透明
		jbWithdrawal.setBorderPainted(false); //消去边框
		jbWithdrawal.setForeground(Color.red);
		container.add(jbWithdrawal);
		jbWithdrawal.addActionListener(new ActionListener() {
			
			@Override
			public void actionPerformed(ActionEvent e) {
				dispose();
				new WithdrawalUI(user);
			}
		});
		JButton jbPerson = new JButton("个人信息");
		jbPerson.setBounds(450, 250, 150, 80);
		jbPerson.setFont(new java.awt.Font("宋体", 0, 27));	//设置字体大小
		jbPerson.setContentAreaFilled(false);//透明
		jbPerson.setBorderPainted(false); //消去边框
		jbPerson.setForeground(Color.red);
		container.add(jbPerson);
		jbPerson.addActionListener(new ActionListener() {
			
			@Override
			public void actionPerformed(ActionEvent e) {
				dispose();
				new PersonUI(user);
			}
		});
		
		JButton jbUpdatePerson = new JButton("修改信息");
		jbUpdatePerson.setBounds(50, 250, 150, 80);
		jbUpdatePerson.setFont(new java.awt.Font("宋体", 0, 27));	//设置字体大小
		jbUpdatePerson.setContentAreaFilled(false);//透明
		jbUpdatePerson.setBorderPainted(false); //消去边框
		jbUpdatePerson.setForeground(Color.red);
		container.add(jbUpdatePerson);
		jbUpdatePerson.addActionListener(new ActionListener() {
			
			@Override
			public void actionPerformed(ActionEvent e) {
				dispose();
				new UpdatePersonUI(user);
			}
		});
		
		JButton jbDeletePerson = new JButton("注销用户");
		jbDeletePerson.setBounds(450, 450, 150, 80);
		jbDeletePerson.setFont(new java.awt.Font("宋体", 0, 27));	//设置字体大小
		jbDeletePerson.setContentAreaFilled(false);//透明
		jbDeletePerson.setBorderPainted(false); //消去边框
		jbDeletePerson.setForeground(Color.red);
		container.add(jbDeletePerson);
		jbDeletePerson.addActionListener(new ActionListener() {
			
			@Override
			public void actionPerformed(ActionEvent e) {
				int index = userService.deleteUser(user.getAccount());
				if (index>0) {
					JOptionPane.showMessageDialog(null, "用户注销成功");
					dispose();
				}else {
					JOptionPane.showMessageDialog(null, "用户注销失败");
				}
			}
		});
		
		JButton jbTransfer = new JButton("转账");
		jbTransfer.setBounds(50, 450, 150, 80);
		jbTransfer.setFont(new java.awt.Font("宋体", 0, 27));	//设置字体大小
		jbTransfer.setContentAreaFilled(false);//透明
		jbTransfer.setBorderPainted(false); //消去边框
		jbTransfer.setForeground(Color.red);
		container.add(jbTransfer);
		jbTransfer.addActionListener(new ActionListener() {
			
			@Override
			public void actionPerformed(ActionEvent e) {
				dispose();
				new TransferUI(user);
			}
		});

		JButton jbRecord = new JButton("存取记录");
		jbRecord.setBounds(50, 650, 150, 80);
		jbRecord.setFont(new java.awt.Font("宋体", 0, 27));	//设置字体大小
		jbRecord.setContentAreaFilled(false);//透明
		jbRecord.setBorderPainted(false); //消去边框
		jbRecord.setForeground(Color.red);
		container.add(jbRecord);
		jbRecord.addActionListener(new ActionListener() {
			
			@Override
			public void actionPerformed(ActionEvent e) {
				dispose();
				new PersonRecord(user);
			}
		});
		
		JButton jbExit = new JButton("退出");
		jbExit.setBounds(450, 650, 150, 80);
		jbExit.setFont(new java.awt.Font("宋体", 0, 27));	//设置字体大小
		jbExit.setContentAreaFilled(false);//透明
		jbExit.setBorderPainted(false); //消去边框
		jbExit.setForeground(Color.red);
		container.add(jbExit);
		jbExit.addActionListener(new ActionListener() {
			
			@Override
			public void actionPerformed(ActionEvent e) {
				System.exit(0);
			}
		});
		
		ImageIcon icon = new ImageIcon("image/ti.jpg");
		JLabel image = new JLabel(icon);
		((JComponent) container).setOpaque(false);
		image.setBounds(0,0, 700, 800);
		container.add(image);
		
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		setVisible(true);//可视化
	}
}

PersonRecord.java

package com.libangzhen.ui;

import java.awt.Container;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.List;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.table.DefaultTableModel;

import com.libangzhen.pojo.User;
import com.libangzhen.pojo.UserRecord;
import com.libangzhen.service.UserRecordService;
import com.libangzhen.serviceImpl.UserRecordServiceImpl;

public class PersonRecord extends JFrame{
	
	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	
	private UserRecordService userRecordService = new UserRecordServiceImpl();

	public PersonRecord(User user) {
		Container container = getContentPane();
		setLayout(null);
		setTitle("银行记录");	//设置框体的标题
		setLayeredPane(getLayeredPane());
		setBounds(700, 200, 600, 700);    //框架的大小和位置
		
		JButton jbCancel = new JButton("返回");
		jbCancel.setBounds(200, 550, 100, 40);
		jbCancel.setFont(new java.awt.Font("宋体", 0, 24));	//设置字体大小
		jbCancel.setContentAreaFilled(false);//透明
		jbCancel.setBorderPainted(false); //消去边框
		container.add(jbCancel);
		jbCancel.addActionListener(new ActionListener() {
			
			@Override
			public void actionPerformed(ActionEvent e) {
				dispose();
				new Menu(user);
			}
		});
		
		DefaultTableModel defaultTableModel = new DefaultTableModel();
		defaultTableModel.setColumnIdentifiers(new Object[] {"账号","姓名","时间","金额",});
		
		List<UserRecord> list = userRecordService.selectAccountRecord(user.getAccount());
		for (UserRecord userRecord : list) {
			defaultTableModel.addRow(new Object[] {
					userRecord.getAccount(),
					userRecord.getUserName(),
					userRecord.getTime(),
					userRecord.getMoney()
					});
		};
		JTable fk = new JTable(defaultTableModel);
		JScrollPane jScrollPane = new JScrollPane(fk);
		jScrollPane.setBounds(10, 10, 560, 500);
		container.add(jScrollPane);
		
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		setVisible(true);//可视化
	}
}

PersonUI.java

package com.libangzhen.ui;

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 com.libangzhen.pojo.User;

public class PersonUI extends JFrame{
	
	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;

	public PersonUI(User user) {
		Container container = getContentPane();
		setLayout(null);
		setTitle("个人信息");	//设置框体的标题
		setLayeredPane(getLayeredPane());
		setBounds(700, 200, 600, 700);    //框架的大小和位置
		JButton jbCancel = new JButton("返回");
		jbCancel.setBounds(0, 0, 100, 30);
		jbCancel.setFont(new java.awt.Font("宋体", 0, 20));	//设置字体大小
		jbCancel.setContentAreaFilled(false);//透明
		jbCancel.setBorderPainted(false); //消去边框
		container.add(jbCancel);
		jbCancel.addActionListener(new ActionListener() {
			
			@Override
			public void actionPerformed(ActionEvent e) {
				dispose();
				new Menu(user);
			}
		});
		JLabel jlAccount = new JLabel("账号:   "+user.getAccount());
		jlAccount.setBounds(150, 50, 300, 40);
		jlAccount.setFont(new java.awt.Font("宋体", 0, 20));	//设置字体大小
		container.add(jlAccount);
		
		JLabel jlPassword = new JLabel("密码:   "+user.getPassword());
		jlPassword.setBounds(150, 150, 300, 40);
		jlPassword.setFont(new java.awt.Font("宋体", 0, 20));	//设置字体大小
		container.add(jlPassword);
		
		JLabel jlName = new JLabel("姓名:   "+user.getUserName());
		jlName.setBounds(150, 250, 300, 40);
		jlName.setFont(new java.awt.Font("宋体", 0, 20));	//设置字体大小
		container.add(jlName);
		
		JLabel jlSex = new JLabel("性别:   "+user.getSex());
		jlSex.setBounds(150, 350, 300, 40);
		jlSex.setFont(new java.awt.Font("宋体", 0, 20));	//设置字体大小
		container.add(jlSex);
		
		JLabel jlPhone = new JLabel("手机号:   "+user.getPhone());
		jlPhone.setBounds(123, 450, 300, 40);
		jlPhone.setFont(new java.awt.Font("宋体", 0, 20));	//设置字体大小
		container.add(jlPhone);
		
		JLabel jlMoney = new JLabel("金额:   "+user.getMoney());
		jlMoney.setBounds(150, 550, 300, 40);
		jlMoney.setFont(new java.awt.Font("宋体", 0, 20));	//设置字体大小
		container.add(jlMoney);
		
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		setVisible(true);//可视化
	}
}

RegistUI.java

package com.libangzhen.ui;

import java.awt.Container;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JTextField;

import com.libangzhen.pojo.User;
import com.libangzhen.service.UserService;
import com.libangzhen.serviceImpl.UserServiceImpl;

public class RegistUI extends JFrame{
	
	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	
	private UserService userService = new UserServiceImpl();
	
	public static void main(String[] args) {
		new RegistUI();
	}
	public RegistUI() {
		Container container = getContentPane();
		setLayout(null);
		setTitle("存款");	//设置框体的标题
		setLayeredPane(getLayeredPane());
		setBounds(700, 200, 700, 700);    //框架的大小和位置
		

		JLabel jlAccount = new JLabel("账号");
		jlAccount.setBounds(170, 70, 100, 40);
		jlAccount.setFont(new java.awt.Font("宋体", 0, 24));	//设置字体大小
		container.add(jlAccount);
		
		JTextField jtAccount = new JTextField();
		jtAccount.setBounds(255, 78, 150, 30);
		jtAccount.setFont(new java.awt.Font("宋体", 0, 24));	//设置字体大小
		container.add(jtAccount);
		
		JLabel jlPassword = new JLabel("密码");
		jlPassword.setBounds(170, 140, 100, 40);
		jlPassword.setFont(new java.awt.Font("宋体", 0, 24));	//设置字体大小
		container.add(jlPassword);
		
		JTextField jtPassword = new JTextField();
		jtPassword.setBounds(255, 148, 150, 30);
		jtPassword.setFont(new java.awt.Font("宋体", 0, 24));	//设置字体大小
		container.add(jtPassword);
		
		
		JLabel jlName = new JLabel("姓名");
		jlName.setBounds(170, 210, 100, 40);
		jlName.setFont(new java.awt.Font("宋体", 0, 24));	//设置字体大小
		container.add(jlName);
		
		JTextField jtName = new JTextField();
		jtName.setBounds(255, 218, 150, 30);
		jtName.setFont(new java.awt.Font("宋体", 0, 24));	//设置字体大小
		container.add(jtName);
		
		JLabel jlSex = new JLabel("性别");
		jlSex.setBounds(170, 280, 100, 40);
		jlSex.setFont(new java.awt.Font("宋体", 0, 24));	//设置字体大小
		container.add(jlSex);
		
		JComboBox<String> jtSex=new JComboBox<String>();    //创建JComboBox
		jtSex.addItem("--请选择--");    //向下拉列表中添加一项
		jtSex.addItem("男");
		jtSex.addItem("女");
		jtSex.setBounds(255, 288, 150, 30);
		jtSex.setFont(new java.awt.Font("宋体", 0, 24));	//设置字体大小
		container.add(jtSex);
		
		JLabel jlPhone = new JLabel("手机号");
		jlPhone.setBounds(155, 350, 100, 40);
		jlPhone.setFont(new java.awt.Font("宋体", 0, 24));	//设置字体大小
		container.add(jlPhone);
		
		JTextField jtPhone = new JTextField();
		jtPhone.setBounds(255, 358, 150, 30);
		jtPhone.setFont(new java.awt.Font("宋体", 0, 24));	//设置字体大小
		container.add(jtPhone);
		
		JButton jbCancel = new JButton("返回");
		jbCancel.setBounds(150, 440, 100, 30);
		container.add(jbCancel);
		jbCancel.addActionListener(new ActionListener() {
			
			@Override
			public void actionPerformed(ActionEvent e) {
				dispose();
				new LoginUI();
			}
		});
		
		JButton jbSure = new JButton("确认");
		jbSure.setBounds(400, 440, 100, 30);
		container.add(jbSure);
		jbSure.addActionListener(new ActionListener() {
			
			@Override
			public void actionPerformed(ActionEvent e) {
				String account = jtAccount.getText();
				String password = jtPassword.getText();
				String name = jtName.getText();
				int sex = jtSex.getSelectedIndex();
				String phone = jtPhone.getText();
				if (sex == 0) {
					JOptionPane.showMessageDialog(null, "请选择性别");
				}else {
					String se = "";
					if (sex == 1) {
						se = "男";
					}else {
						se = "女";
					}
					if (account.equals("")) {
						JOptionPane.showMessageDialog(null, "请输入账号");
					}else {
						if (password.equals("")) {
							JOptionPane.showMessageDialog(null, "请输入密码");
						}else {
							if (name.equals("")) {
								JOptionPane.showMessageDialog(null, "请输入姓名");
							}else {
								if (phone.equals("")) {
									JOptionPane.showMessageDialog(null, "请输入手机号");
								}else {
									if (phone.length() != 11) {
										JOptionPane.showMessageDialog(null, "请输入正确的手机号");
									}else {
										boolean exist = userService.isExist(account);
										if (exist) {
											JOptionPane.showMessageDialog(null, "账号已存在");
										}else {
											User user= new User();
											user.setAccount(account);
											user.setPassword(password);
											user.setSex(se);
											user.setUserName(name);
											user.setPhone(phone);
											int index = userService.insertUser(user);
											if (index > 0) {
												JOptionPane.showMessageDialog(null, "注册成功");
											}else {
												JOptionPane.showMessageDialog(null, "注册失败");
											}
										}
									}
								}
							}
						}
					}
				}
			}
		});
		
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		setVisible(true);//可视化
	}
}

TransferUI.java

package com.libangzhen.ui;

import java.awt.Container;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.Timestamp;
import java.text.SimpleDateFormat;
import java.util.Date;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JTextField;

import com.libangzhen.pojo.User;
import com.libangzhen.pojo.UserRecord;
import com.libangzhen.service.UserRecordService;
import com.libangzhen.service.UserService;
import com.libangzhen.serviceImpl.UserRecordServiceImpl;
import com.libangzhen.serviceImpl.UserServiceImpl;

public class TransferUI extends JFrame{
	
	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	
	private UserService userService = new UserServiceImpl();
	
	private UserRecordService userRecordService = new UserRecordServiceImpl();

	public TransferUI(User user) {

		Container container = getContentPane();
		setLayout(null);
		setTitle("转账");	//设置框体的标题
		setLayeredPane(getLayeredPane());
		setBounds(700, 200, 600, 500);    //框架的大小和位置
		
		JLabel jLabel = new JLabel("请输入转账账号");
		jLabel.setBounds(120, 70, 200, 40);
		jLabel.setFont(new java.awt.Font("宋体", 0, 20));	//设置字体大小
		container.add(jLabel);
		
		JTextField jField = new JTextField();
		jField.setBounds(220, 130, 150, 30);
		jField.setFont(new java.awt.Font("宋体", 0, 20));	//设置字体大小
		container.add(jField);
		
		JLabel jLabel_1 = new JLabel("请输入转账金额");
		jLabel_1.setBounds(120, 170, 200, 40);
		jLabel_1.setFont(new java.awt.Font("宋体", 0, 20));	//设置字体大小
		container.add(jLabel_1);
		
		JTextField jField_1 = new JTextField();
		jField_1.setBounds(220, 230, 150, 30);
		jField_1.setFont(new java.awt.Font("宋体", 0, 20));	//设置字体大小
		container.add(jField_1);
		
		JButton jbCancel  = new JButton("返回");
		jbCancel.setBounds(120, 300, 70, 30);
		container.add(jbCancel);
		jbCancel.addActionListener(new ActionListener() {
			
			@Override
			public void actionPerformed(ActionEvent e) {
				dispose();
				new Menu(user);
			}
		});
		
		JButton jbSure  = new JButton("转账");
		jbSure.setBounds(330, 300, 70, 30);
		container.add(jbSure);
		jbSure.addActionListener(new ActionListener() {
			
			@Override
			public void actionPerformed(ActionEvent e) {
				String account = jField.getText();
				if (account.equals("")) {
					JOptionPane.showMessageDialog(null, "账号不能为空");
				}else {
					User users = userService.selectByAccount(account);
					if (users == null) {
						JOptionPane.showMessageDialog(null, "账号不存在");
					}else {
						String money_1 = jField_1.getText();
						if (money_1.equals("")) {
							JOptionPane.showMessageDialog(null, "金额不能为空");
						}else {
							try {
								double money_2 = Double.parseDouble(money_1);
								double money = user.getMoney() - money_2;
								if (money<0) {
									JOptionPane.showMessageDialog(null, "金额不足");
								}else {
									if (user.getAccount().equals(users.getAccount())) {
										JOptionPane.showMessageDialog(null, "对不起不能和自己转账");
									}else {
										System.out.println(user.getMoney()+"开始");
										System.out.println(users.getMoney()+"结束");
										double moneys = users.getMoney()+money_2;
										user.setMoney(money);
										users.setMoney(moneys);
										System.out.println(user.getMoney()+"输出");
										System.out.println(users.getMoney()+"输入");
										int index = userService.tranfer(user, users);
										System.out.println(index+"哈哈");
										if (index>0) {
											System.out.println("进来了");
											Date date = new Date();
											Timestamp timestamp1 =  new Timestamp(date.getTime());
											String aString = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(timestamp1);
											UserRecord userRecord = new UserRecord();
											userRecord.setAccount(user.getAccount());
											userRecord.setUserName(user.getUserName());
											userRecord.setTime(aString);
											userRecord.setMoney(0-money_2);
											int index1 = userRecordService.insertRecord(userRecord);
											System.out.println(index1+"diyi");
											UserRecord userRecords = new UserRecord();
											userRecords.setAccount(users.getAccount());
											userRecords.setUserName(users.getUserName());
											userRecords.setTime(aString);
											userRecords.setMoney(money_2);
											int index2 = userRecordService.insertRecord(userRecords);
											System.out.println(index2+"dier");
											if (index2>0 && index1>0) {
												JOptionPane.showMessageDialog(null, "转账成功");
											}else {
												JOptionPane.showMessageDialog(null, "转账失败");
											}
										}else {
											JOptionPane.showMessageDialog(null, "转账失败");
										}
									}
								}
							} catch (Exception e2) {
								JOptionPane.showMessageDialog(null, "金额错误");
							}
							
						}
					}
				}
			}
		});
		
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		setVisible(true);//可视化
	}
}

UpdatePersonUI.java

package com.libangzhen.ui;

import java.awt.Container;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JTextField;

import com.libangzhen.pojo.User;
import com.libangzhen.service.UserService;
import com.libangzhen.serviceImpl.UserServiceImpl;

public class UpdatePersonUI extends JFrame{
	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	
	private UserService userService = new UserServiceImpl();
	
	public UpdatePersonUI(User user) {
		Container container = getContentPane();
		setLayout(null);
		setTitle("存款");	//设置框体的标题
		setLayeredPane(getLayeredPane());
		setBounds(700, 200, 700, 700);    //框架的大小和位置
		

		JLabel jlAccount = new JLabel("账号    " + user.getAccount());
		jlAccount.setBounds(170, 70, 400, 40);
		jlAccount.setFont(new java.awt.Font("宋体", 0, 24));	//设置字体大小
		container.add(jlAccount);
		
		JLabel jlPassword = new JLabel("密码");
		jlPassword.setBounds(170, 140, 100, 40);
		jlPassword.setFont(new java.awt.Font("宋体", 0, 24));	//设置字体大小
		container.add(jlPassword);
		
		JTextField jtPassword = new JTextField();
		jtPassword.setBounds(255, 148, 150, 30);
		jtPassword.setFont(new java.awt.Font("宋体", 0, 24));	//设置字体大小
		jtPassword.setText(user.getPassword());
		container.add(jtPassword);
		
		
		JLabel jlName = new JLabel("姓名");
		jlName.setBounds(170, 210, 100, 40);
		jlName.setFont(new java.awt.Font("宋体", 0, 24));	//设置字体大小
		container.add(jlName);
		
		JTextField jtName = new JTextField();
		jtName.setBounds(255, 218, 150, 30);
		jtName.setFont(new java.awt.Font("宋体", 0, 24));	//设置字体大小
		jtName.setText(user.getUserName());
		container.add(jtName);
		
		JLabel jlSex = new JLabel("性别");
		jlSex.setBounds(170, 280, 100, 40);
		jlSex.setFont(new java.awt.Font("宋体", 0, 24));	//设置字体大小
		container.add(jlSex);
		
		JComboBox<String> jtSex=new JComboBox<String>();    //创建JComboBox
		jtSex.addItem("--请选择--");    //向下拉列表中添加一项
		jtSex.addItem("男");
		jtSex.addItem("女");
		jtSex.setBounds(255, 288, 150, 30);
		jtSex.setFont(new java.awt.Font("宋体", 0, 24));	//设置字体大小
		container.add(jtSex);
		
		JLabel jlPhone = new JLabel("手机号");
		jlPhone.setBounds(155, 350, 100, 40);
		jlPhone.setFont(new java.awt.Font("宋体", 0, 24));	//设置字体大小
		container.add(jlPhone);
		
		JTextField jtPhone = new JTextField();
		jtPhone.setBounds(255, 358, 150, 30);
		jtPhone.setFont(new java.awt.Font("宋体", 0, 24));	//设置字体大小
		jtPhone.setText(user.getPhone());
		container.add(jtPhone);
		
		JButton jbCancel = new JButton("返回");
		jbCancel.setBounds(150, 440, 100, 30);
		container.add(jbCancel);
		jbCancel.addActionListener(new ActionListener() {
			
			@Override
			public void actionPerformed(ActionEvent e) {
				dispose();
				new Menu(user);
			}
		});
		
		JButton jbSure = new JButton("确认");
		jbSure.setBounds(400, 440, 100, 30);
		container.add(jbSure);
		jbSure.addActionListener(new ActionListener() {
			
			@Override
			public void actionPerformed(ActionEvent e) {
				String name = jtName.getText();
				String password = jtPassword.getText();
				String phone = jtPhone.getText();
				int sex = jtSex.getSelectedIndex();
				if (sex == 0) {
					JOptionPane.showMessageDialog(null, "请选择性别");
				}else {
					String se = "";
					if (sex == 1) {
						se = "男";
					}else {
						se = "女";
					}
					if (password.equals("")) {
						JOptionPane.showMessageDialog(null, "请输入密码");
					}else {
						if (phone.equals("")) {
							JOptionPane.showMessageDialog(null, "请输入手机号");
						}else {
							if (name.equals("")) {
								JOptionPane.showMessageDialog(null, "请输入姓名");
							}else {
								user.setUserName(name);
								user.setPassword(password);
								user.setPhone(phone);
								user.setSex(se);
								int index = userService.updateUser(user);
								if (index>0) {
									JOptionPane.showMessageDialog(null, "修改成功");
								}else {
									JOptionPane.showMessageDialog(null, "修改失败");
								}
							}
						}
					}
				}
			}
		});

		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		setVisible(true);//可视化
	}
}

WithdrawalUI.java

package com.libangzhen.ui;

import java.awt.Container;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.Timestamp;
import java.text.SimpleDateFormat;
import java.util.Date;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JTextField;

import com.libangzhen.pojo.User;
import com.libangzhen.pojo.UserRecord;
import com.libangzhen.service.UserRecordService;
import com.libangzhen.service.UserService;
import com.libangzhen.serviceImpl.UserRecordServiceImpl;
import com.libangzhen.serviceImpl.UserServiceImpl;

public class WithdrawalUI extends JFrame{
	
	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	
	private UserService userService = new UserServiceImpl();
	
	private UserRecordService userRecordService = new UserRecordServiceImpl();

	public WithdrawalUI(User user) {

		Container container = getContentPane();
		setLayout(null);
		setTitle("取款");	//设置框体的标题
		setLayeredPane(getLayeredPane());
		setBounds(700, 200, 600, 500);    //框架的大小和位置
		
		JLabel jLabel = new JLabel("请输入取款金额");
		jLabel.setBounds(120, 70, 200, 40);
		jLabel.setFont(new java.awt.Font("宋体", 0, 20));	//设置字体大小
		container.add(jLabel);
		
		JTextField jField = new JTextField();
		jField.setBounds(220, 150, 100, 30);
		jField.setFont(new java.awt.Font("宋体", 0, 20));	//设置字体大小
		container.add(jField);
		
		JButton jbCancel  = new JButton("返回");
		jbCancel.setBounds(120, 250, 70, 30);
		container.add(jbCancel);
		jbCancel.addActionListener(new ActionListener() {
			
			@Override
			public void actionPerformed(ActionEvent e) {
				dispose();
				new Menu(user);
			}
		});
		JButton jbSure  = new JButton("取款");
		jbSure.setBounds(330, 250, 70, 30);
		container.add(jbSure);
		jbSure.addActionListener(new ActionListener() {
			
			@Override
			public void actionPerformed(ActionEvent e) {
				String money_1 = jField.getText();
				if (money_1.equals("")) {
					JOptionPane.showMessageDialog(null, "金额不能为空");
				}else {
					try {
						double money_2 = Double.parseDouble(money_1);
						double money = user.getMoney() - money_2;
						if (money < 0) {
							JOptionPane.showMessageDialog(null, "金额不足");
						}else {
							user.setMoney(money);
							int index = userService.updateMoney(user);
							if (index>0) {
								Date date = new Date();
								Timestamp timestamp1 =  new Timestamp(date.getTime());
								String aString = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(timestamp1);
								UserRecord userRecord = new UserRecord();
								userRecord.setAccount(user.getAccount());
								userRecord.setUserName(user.getUserName());
								userRecord.setTime(aString);
								userRecord.setMoney(-money_2);
								int index1 = userRecordService.insertRecord(userRecord);
								if(index1>0) {
									JOptionPane.showMessageDialog(null, "取款成功");
								}else {
									JOptionPane.showMessageDialog(null, "取款失败");
								}
							}else {
								JOptionPane.showMessageDialog(null, "取款失败");
							}
						}
					} catch (Exception e2) {
						JOptionPane.showMessageDialog(null, "输入金额错误");
					}
				}
			}
		});
		
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		setVisible(true);//可视化
	
	}
}

DruidUtils.java

package com.libangzhen.utils;

import java.io.InputStream;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Properties;

import javax.sql.DataSource;

import com.alibaba.druid.pool.DruidDataSourceFactory;

public class DruidUtils {
	
	private static DataSource source;
	
	static {
		
		try {
			Properties properties = new Properties();
			
			InputStream is = ClassLoader.getSystemClassLoader().getResourceAsStream("druid.properties");
			
			properties.load(is);
			source = DruidDataSourceFactory.createDataSource(properties);
		} catch (Exception e) {
			e.printStackTrace();
		} 
	}
	
	public static Connection getConnection() throws SQLException {
		Connection conn = source.getConnection();
		return conn;
	}
	
	public static void closeResource(Connection conn,Statement ps) {
		try {
			if(ps != null) 
				ps.close();
		} catch (Exception e) {
			e.printStackTrace();
		}
		try {
			if (conn != null) 
				conn.close();
		} catch (Exception e) {
			e.printStackTrace();
		}
		
	}
	/**
	 * 关闭资源
	 * @param conn
	 * @param ps
	 * @param res
	 */
	public static void closeResource(Connection conn,PreparedStatement ps,ResultSet res) {
		
		try {
			if(res != null) 
				res.close();
		} catch (Exception e) {
			e.printStackTrace();
		}
		try {
			if(ps != null) 
				ps.close();
		} catch (Exception e) {
			e.printStackTrace();
		}
		try {
			if (conn != null) 
				conn.close();
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
}

用到的jar包
在这里插入图片描述
最后运行的效果图
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
有不足的地方,欢迎大家提出。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值