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技术站