maheensayuru/Nexus-Banking-System
GitHub: maheensayuru/Nexus-Banking-System
基于 Java 和 MySQL 的银行微服务系统,演示了关系型数据库管理、安全事务处理与微服务协作的后端架构实践。
Stars: 0 | Forks: 0
# 🏦 Nexus 银行系统 (v2.0 - 集成 SQL)
一个专业级的后端应用程序,旨在演示**关系型数据库管理 (RDBMS)**、**依赖管理**和**整洁的后端架构**。
## 🚀 最新升级
- **数据库集成:** 从 `.txt` 文件迁移至 **MySQL** 数据库,以实现可靠的数据持久化。
- **加密安全:** 为所有存储的用户密码增加了 SHA-256 哈希处理。
- **Maven 迁移:** 项目现在使用 **Maven** (`pom.xml`) 进行自动化的依赖和构建管理。
- **Java 21 支持:** 针对最新的长期支持 (LTS) Java 版本进行了优化。
- **预编译语句:** 实现了严格的 SQL 逻辑,以防止 SQL 注入攻击。
## 🛠️ 技术栈
- **语言:** Java 21
- **数据库:** MySQL 8.x
- **连接器:** MySQL Connector/J (JDBC)
- **构建工具:** Maven
## 🖥️ 数据库 Schema
该微服务依赖于多表关系型 schema:
```
CREATE TABLE accounts (
account_number VARCHAR(10) PRIMARY KEY,
account_holder VARCHAR(100) NOT NULL UNIQUE,
balance DECIMAL(15, 2) DEFAULT 0.0,
password VARCHAR(255) NOT NULL,
is_frozen BOOLEAN DEFAULT FALSE
);
CREATE TABLE transactions (
id INT AUTO_INCREMENT PRIMARY KEY,
sender VARCHAR(100) NOT NULL,
recipient VARCHAR(100) NOT NULL,
amount DECIMAL(15, 2) NOT NULL,
transfer_date TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
CREATE TABLE offline_messages (
id INT AUTO_INCREMENT PRIMARY KEY,
sender VARCHAR(100) NOT NULL,
recipient VARCHAR(100) NOT NULL,
message TEXT NOT NULL,
timestamp TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
```
## 🔗 Nexus 生态系统
该银行系统不再仅仅是一个独立的应用程序——它作为微服务架构的基础数据层而存在。
它与 **[Nexus 聊天服务器](https://github.com/maheensayuru/Nexus-Chat-Server)** 集成,允许用户通过加密的 JavaFX 聊天界面,安全地查询其数据库余额 (`/balance`) 并执行实时的多线程 SQL 事务 (`/transfer`)。
## ⚙️ 设置与安装
1. 克隆仓库:`git clone https://github.com/maheensayuru/Nexus-Banking-System.git`
2. 创建 MySQL 数据库:`CREATE DATABASE bank_db;`
3. 执行上面提供的 schema 来创建数据表。
4. 更新 `DatabaseManager.java` 中的 `URL`、`USER` 和 `PASSWORD`。
5. 使用 Maven 构建并运行:
`mvn compile exec:java -Dexec.mainClass="BankingApp"`
标签:CISA项目, Java 21, JDBC事务, Maven, Nexus生态系统, PreparedStatement, RDBMS, SHA-256, 交易记录, 企业级应用, 依赖管理, 关系型数据库, 加密存储, 后端开发, 干净架构, 支付系统, 数据库模式, 数据库连接器, 数据持久化, 数据泄露, 漏洞验证, 离线消息, 账户管理, 金融科技, 银行系统, 防SQL注入