Java 模拟银行自助终端系统

Java 模拟银行自助终端系统

系统概述

本系统是一个基于 Java 语言开发的银行自助终端系统,具有账户管理、存取款、转账等基本银行操作功能。用户可以通过自助终端完成这些操作,无需前往银行柜台。

功能模块

1. 账户管理模块

银行系统管理员可以通过该模块添加账户、删除账户、查询账户信息等。每个账户拥有唯一的账号和用户名。

2. 存取款模块

用户可以通过该模块进行存款和取款操作。用户需要输入自己的账号和密码才能进行操作。每次存取款操作都会更新账户余额。

3. 转账模块

用户可以通过该模块进行转账操作,将自己账户中的余额转入其他账户。用户需要输入对方的账号和转账金额。每次转账操作都会更新账户余额。

系统设计

1. 数据库设计

系统使用 MySQL 数据库存储用户信息和账户余额。(如下代码块)

CREATE TABLE user (
    id BIGINT PRIMARY KEY AUTO_INCREMENT,
    username VARCHAR(32) NOT NULL UNIQUE,
    password VARCHAR(32) NOT NULL,
);

CREATE TABLE account (
    id BIGINT PRIMARY KEY AUTO_INCREMENT,
    account VARCHAR(32) NOT NULL UNIQUE,
    balance DOUBLE DEFAULT 0
);

2. 界面设计

系统使用 Java Swing 编写界面。界面布局包括账户登录页面、账户主页、账户管理页面、存取款页面、转账页面等。

3. 后端设计

系统使用 Java Servlet 和 JSP 进行后端数据处理和视图渲染。使用 JDBC 完成与 MySQL 数据库的交互。

操作示例

1. 添加账户

管理员在账户管理页面点击“添加账户”按钮,通过表单输入账户信息并提交。系统将信息存储到 MySQL 数据库,并提示添加成功。(如下代码块)

try {
    Class.forName("com.mysql.jdbc.Driver");
    String url = "jdbc:mysql://localhost/bank";
    String username = "root";
    String password = "123456";
    Connection connection = DriverManager.getConnection(url, username, password);
    PreparedStatement statement = connection.prepareStatement("INSERT INTO user (username, password) VALUES (?, ?)");
    statement.setString(1, username);
    statement.setString(2, password);
    statement.executeUpdate();
    statement.close();
    connection.close();
    response.sendRedirect("user_manager.jsp?msg=add_success");
} catch (SQLException e) {
    e.printStackTrace();
    response.sendRedirect("user_manager.jsp?msg=add_failed");
}

2. 存款操作

用户在存款页面输入账号和密码后,输入存款金额,点击“确定”按钮完成存款。系统将操作记录存储到 MySQL 数据库,同时更新账户余额。(如下代码块)

try {
    Class.forName("com.mysql.jdbc.Driver");
    String url = "jdbc:mysql://localhost/bank";
    String username = "root";
    String password = "123456";
    Connection connection = DriverManager.getConnection(url, username, password);
    PreparedStatement statement = connection.prepareStatement("SELECT balance FROM account WHERE account = ?");
    statement.setString(1, account);
    ResultSet resultSet = statement.executeQuery();
    if (resultSet.next()) {
        double balance = resultSet.getDouble("balance");
        balance += deposit;
        statement = connection.prepareStatement("UPDATE account SET balance = ? WHERE account = ?");
        statement.setDouble(1, balance);
        statement.setString(2, account);
        statement.executeUpdate();
        statement = connection.prepareStatement("INSERT INTO transaction (account, type, amount) VALUES (?, ?, ?)");
        statement.setString(1, account);
        statement.setString(2, "deposit");
        statement.setDouble(3, deposit);
        statement.executeUpdate();
        response.sendRedirect("index.jsp?msg=deposit_success");
    } else {
        response.sendRedirect("index.jsp?msg=account_not_found");
    }
    statement.close();
    connection.close();
} catch (SQLException e) {
    e.printStackTrace();
    response.sendRedirect("index.jsp?msg=deposit_failed");
}

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java 模拟银行自助终端系统 - Python技术站

(0)
上一篇 2023年5月24日
下一篇 2023年5月24日

相关文章

  • Java的线程与进程以及线程的四种创建方式

    Java线程与进程 Java是一门支持多线程的编程语言,线程和进程是Java中常见的程序执行方式。 进程 进程是操作系统分配资源的基本单位,每一个进程都有自己独立的内存空间和系统资源。每当一个程序启动时,操作系统就会为该程序创建一个进程。 Java程序的主函数(main)就是一个进程。当main函数被调用时,操作系统为该程序分配一段内存,这段内存称为进程。J…

    Java 2023年5月19日
    00
  • java使用http实现文件下载学习示例

    Java使用HTTP实现文件下载学习示例 什么是HTTP? HTTP是一种应用层协议,用于在网络中传输超文本数据。HTTP是Web的基础,它使Web能够进行交互式连接。 Java如何使用HTTP实现文件下载? Java提供了多种方式可以使用HTTP进行文件下载,这里介绍两种常用的方式。 使用HttpURLConnection类 HttpURLConnecti…

    Java 2023年5月19日
    00
  • Nginx负载均衡以及动静分离的原理与配置

    Nginx是一个高性能的Web服务器和反向代理服务器,可以用于负载均衡和动静分离。本文将讲解Nginx负载均衡及动静分离的原理和配置方法,内容包括以下几个方面: 负载均衡原理及方法 动静分离原理及方法 Nginx配置示例 1. 负载均衡原理及方法 负载均衡主要用于分摊用户请求到多个服务器上,以提高吞吐量、降低延迟和避免单点故障。Nginx基于反向代理实现负载…

    Java 2023年5月20日
    00
  • 详解使用canvas保存网页为pdf文件支持跨域

    详解使用canvas保存网页为PDF文件支持跨域的完整攻略。 1. 简介 现在越来越多的网站需要支持生成PDF文件。而通过canvas来保存HTML页面为PDF文件是非常流行的一种解决方案,同时它也支持跨域。 2. 实现过程 2.1 引入jsPDF库 我们会使用到一个叫做jsPDF的库来实现将HTML页面转为PDF文件的操作。所以我们首先需要在HTML页面中…

    Java 2023年6月16日
    00
  • SpringBoot发现最新版Druid重大问题(坑)

    SpringBoot发现最新版Druid重大问题(坑)攻略 问题描述 最近,在使用 SpringBoot 和 Druid 进行数据库连接池配置的时候,发现了一个最新版 Druid 的重大问题。具体表现就是,在使用了最新版 Druid 后,产生了以下的错误信息: 错误信息:Cannot create JDBC driver of class ‘com.mysq…

    Java 2023年6月3日
    00
  • Json转list二层解析转换代码实例

    下面是完整的攻略: 理解Json数据格式 在进行Json转list二层解析转换操作之前,我们需要先对Json数据格式有一定的了解。Json(JavaScript Object Notation)是一种轻量级的数据交换格式,常用于前后端数据传输和存储。它的基本结构是一个键值对,用花括号包裹,例如: { "name": "张三&qu…

    Java 2023年5月26日
    00
  • JAVA JNI原理详细介绍及简单实例代码

    先来介绍一下什么是JNI。 JNI,全称为Java Native Interface,即Java本地接口,是一个开发工具包,提供了一种使Java代码和本地代码(C、C++等)交互的机制。 开发者可以使用JNI将本地的代码嵌入到Java应用程序中,从而充分发挥本地代码的性能,是Java与本地代码的桥梁。 下面我来分步骤详细讲解“JAVA JNI原理详细介绍及简…

    Java 2023年5月23日
    00
  • JSP之EL表达式基础详解

    JSP之EL表达式基础详解 什么是EL表达式 EL表达式全称是Expression Language,翻译成中文叫做表达式语言,是一种用于在JSP页面中访问JavaBean中数据的简便方法。EL表达式可以相对简洁地访问各种JavaBean的属性、方法和数组元素,而不必显式地使用Java代码进行操作。通过使用EL表达式,可大大简化JSP页面的代码和逻辑,提高J…

    Java 2023年6月15日
    00
合作推广
合作推广
分享本页
返回顶部