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日

相关文章

  • JVM对象创建和内存分配原理解析

    JVM对象创建和内存分配原理解析 在Java开发中,对象的创建和内存分配是非常重要的环节。这里我们详细讲解JVM对象创建和内存分配原理。 JVM对象创建原理 JVM在获取实例化的类的基础信息后,首先需要为对象分配内存。 然后JVM需要为这些内存块清零,这个过程也称作垃圾回收。 接下来,JVM会对对象进行初始化,这里指的是为对象的成员变量赋予默认值,而且这些默…

    Java 2023年5月26日
    00
  • Spring MVC—数据绑定和表单标签详解

    SpringMVC 数据绑定和表单标签详解 SpringMVC是一个非常流行的Java Web框架。它通过模型-视图-控制器(MVC)架构,实现了对Web应用程序的易于扩展和维护的分层设计。在实际开发中,数据绑定和表单标签是SpringMVC中最重要的两个特性之一。 数据绑定 数据绑定指的是将请求参数(如表单提交的数据)自动绑定到JavaBean对象上。Sp…

    Java 2023年6月15日
    00
  • 如何让java只根据数据库表名自动生成实体类

    让我来讲解一下如何让Java只根据数据库表名自动生成实体类的完整攻略。 1. 创建Maven工程 首先,我们需要创建一个Maven工程,用于管理我们的项目依赖和构建。 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.or…

    Java 2023年5月20日
    00
  • Springboot+AOP实现时间参数格式转换

    下面是”Springboot+AOP实现时间参数格式转换”的完整攻略。 1、背景 在web开发过程中,我们经常需要将前端传过来的时间参数转换成我们需要的格式。如果每次方法处理前都要手动转换,这无疑会增加代码的复杂度和开发时间。因此,我们可以利用Springboot框架提供的AOP功能,在方法执行前进行参数格式转换,从而减少开发时间和复杂度。 2、实现步骤 2…

    Java 2023年6月1日
    00
  • 详解spring security之httpSecurity使用示例

    针对“详解spring security之httpSecurity使用示例”的完整攻略,我分别从以下几个方面进行详细说明。 1. httpSecurity的基本介绍 首先,httpSecurity是Spring Security用于定义Web安全性的Java配置对象,其主要作用是用于配置Web应用程序的安全性,包括登录认证、授权访问、页面跳转等功能。 在使用…

    Java 2023年5月20日
    00
  • JavaWeb中导出excel文件的简单方法

    下面是JavaWeb中导出Excel文件的简单方法的完整攻略。 步骤一:导入相关的依赖 在项目中导出Excel文件,需要用到POI库。因此需要在pom.xml中导入相关的依赖: <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</…

    Java 2023年5月26日
    00
  • 用JavaScript实现 铁甲无敌奖门人 “开口中”猜数游戏

    下面是用JavaScript实现「铁甲无敌奖门人“开口中”猜数游戏」的完整攻略。 游戏规则 该游戏分为两个角色:猜数者和奖门人。在游戏开始时,奖门人会先随机设定一个数(一般为 1 到 100 之间的整数),并说出自己设定的数是在 1 到 100 之间。然后,猜数者可以轮流猜测这个数字,而奖门人将回答「大了」、「小了」或者「猜对了」。如果猜数者猜对了,游戏结束…

    Java 2023年6月15日
    00
  • ASP.NET 重定向的几种方法小结

    ASP.NET 重定向的几种方法小结 在ASP.NET开发中,重定向是常见的操作,本文将介绍ASP.NET中几种常用的重定向方法。 Response.Redirect方法 Response.Redirect方法用于将请求重定向到一个新的URL地址。 Response.Redirect("~/login.aspx"); Server.Tra…

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