Java GUI+MySQL 银行管理系统初级(课程设计)

博主学习Java有几个月了,JavaEE的基本内容也都摸过了,所以上级布置了这么一个项目给练练手,萌新上路,还望多多包涵.

 项目名
 银行管理系统
 项目描述
 该系统应用场景类似ATM机有存款、取款、查看流水、转账等业务
 具体功能
1.	登录注册
2.	存款
3.	取款
4.	转账
5.	查看流水
要求
6.	独立完成
7.	必须使用数据库以及MVC分包思想
8.	GUI界面

说明:博主基本实现了全部功能,但初上路,对于mvc的分包思想掌握不好,名副其实的只会写代码2333,下面展示功能说明以及部分代码.截图放在最后,源代码以及数据库配置,有想参考的小伙伴请联系qq 2502513332(应该不会有人吧)

  1. 项目所用到的技术

面向对象基本元素(如类,对象,继承,重载等等),GUI可视化设计,MySQL数据库,jdbc技术,c3p0连接池技术,mvc分层思想.

  1. View层
    view包
    GUI的设计:
    所有窗口均使用 “添加Jframe窗口,设置容器,通过绝对布局往容器中添加组件,再由getText()方法获取键盘输入,以及按钮的监听事件实现各种功能”的思路.

    定义容器:
    
       Container c = this.getContentPane();
       c.setLayout(null);
    设计组件:
        JLabel j1 = new JLabel("存款");
		j1.setFont(new Font("宋体", Font.PLAIN, 24));
		j1.setBounds(170, 0, 100, 40);
		JLabel j2 = new JLabel("存款金额");
		j2.setFont(new Font("宋体", Font.PLAIN, 20));
		j2.setBounds(70, 70, 100, 40);
		JLabel j3 = new JLabel("支付密码");
		j3.setFont(new Font("宋体", Font.PLAIN, 20));
		j3.setBounds(70, 140, 100, 40);
   添加入容器:
 c.add(j1);
		c.add(j2);
		c.add(j3);
		c.add(j4);
		c.add(j5);
		c.add(j6);
		c.add(j7);
事件监听:
 j5.addActionListener(new ActionListener() {
			@Override
			public void actionPerformed(ActionEvent arg0) {
				// TODO Auto-generated method stub
				if (j7.getText().length() == 6) {
					if (j7.getText().equals(us.getBankPassword())) {
						double d = Double.valueOf(j6.getText());
						double e = d + us.getMoney();
						UpdateSQL updateSQL = new UpdateSQL();
						updateSQL.depositupdate(e, us);
						setVisible(false);
					} else {
						JOptionPane.showMessageDialog(null, "密码错误!.", "提示", JOptionPane.ERROR_MESSAGE);
					}
				} else {
					JOptionPane.showMessageDialog(null, "密码错误!.", "提示", JOptionPane.ERROR_MESSAGE);
				}

			}
			
		}

View层窗口的设计思路大致如上,但具体的组件参数,事件监听,条件控制,非常繁琐,不作多展示.

  1. Dao包与Utils包
    在这里插入图片描述
    Dao包和Utils包配合实现了数据的处理和数据库持久化,即jdbc技术,jdbc工具很多,其中DbUtils就是一个开源工具类库,使用它能够简化JDBC应用程序的开发,同时也不会影响程序的性能。DbUtils类主要负责装载驱动、关闭连接的常规工作。
    数据库操作流程如下:
    1. 加载(注册)数据库驱动(c3p0连接池技术)
    在这里插入图片描述

首先需要c3p0以及mysql connector等关键驱动jar包
然后需要给c3p0连接池配置xml文件,文件内容为加载驱动,以及选择数据库等

具体配置:
在这里插入图片描述

2. 连接数据库
此处又需要用到另一个工具类DataSourceUtils, 这个类提供了一系列操作数据库连接的工具方法,而我就用到了其中的DataSourceUtils.getConnection()方法获取连接的.这里以UpdateSQL为例:
获取链接:

Connection conn = null;
		try {
			conn = DataSourceUtils.getConnection();
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

3. 执行SQL语句
对于如何使用SQL语句,我使用的是Dbutils中的QuerryRunner类,这个类中的方法可以简化SQL查询,同时不损失性能,具体使用方法如下

	//1.核心类
	QueryRunner queryRunner = new QueryRunner();
	// 2.sql语句 UPDATE <表名> SET 字段1=值1, 字段2=值2, ... WHERE ...;
	String sql = "update users set Password = ? WHERE Account = ? and BankId = ? and BankPassword = ?";
	// 3.实际参数
	Object[] parms = { a, us.getAccount(), us.getBankId(), us.getBankPassword() };
	// 4.执行
	int r = 0;
	try {
		r = queryRunner.update(conn, sql, parms);
	} catch (SQLException e) {
		// TODO Auto-generated catch block
		e.printStackTrace();
	}

此外还使用了BeanHandler 类,可以从数据库返回一个完整对象,便于更新内存中User信息.
4. 关闭资源
    这里是使用c3p0连接池技术的特殊之处了,在池中先创建一些Connection连接,等线程需要使用的时候直接拿就行,所以响应速度比较快。在使用完之后连接释放之后放回池中,但并未真正的关闭资源,等待下一次任务获取。所以就没有关闭资源的步骤了.

  1. 程序部分截图

登录
报错
注册
忘记/修改密码
功能菜单
存款

取款
转账
流水
展示到此为止.

  • 17
    点赞
  • 72
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 21
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Acerola-

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值