A desktop-based Online Banking System developed using Java Swing, JDBC, and MySQL. The application allows users to create bank accounts, perform deposits and withdrawals, check account balances, and view transaction history through an intuitive graphical interface.
- ✅ Create a new bank account
- 💰 Deposit money
- 💸 Withdraw money
- 📊 Check account balance
- 📜 View transaction history
- 🗄️ Data stored permanently in MySQL
⚠️ Exception handling for invalid inputs- 🎨 Modern Java Swing UI using FlatLaf
| Technology | Purpose |
|---|---|
| Java | Programming Language |
| Java Swing | Desktop GUI |
| JDBC | Database Connectivity |
| MySQL | Database |
| FlatLaf | Modern Look & Feel |
| Git | Version Control |
Online-Banking-System
│
├── src
│ └── bank
│ ├── BankAccount.java
│ ├── Transaction.java
│ ├── BankOperations.java
│ ├── BankService.java
│ ├── DatabaseConnection.java
│ ├── BankGUI.java
│ ├── Main.java
│ └── TestRunner.java
│
├── lib
│ ├── mysql-connector-java.jar
│ └── flatlaf-3.4.1.jar
│
├── db_setup.sql
├── README.md
└── LICENSE
User
│
▼
Java Swing GUI
│
▼
BankService.java
│
▼
DatabaseConnection.java
│
▼
MySQL Database
The project uses MySQL with two tables.
Stores customer details.
| Column |
|---|
| Account Number |
| Customer Name |
| Balance |
Stores every transaction performed.
| Column |
|---|
| Transaction ID |
| Account Number |
| Transaction Type |
| Amount |
| Date & Time |
Private variables with Getter and Setter methods.
Classes:
- BankAccount
- Transaction
Implemented using an Interface.
BankOperations
implemented by
BankService
Achieved through interface implementation.
BankService implements BankOperations
Handles:
- Empty Fields
- Invalid Amount
- Account Not Found
- Insufficient Balance
- Invalid Number Format
git clone https://github.com/blessen-thomas/online-banking-system.gitRun
db_setup.sql
inside MySQL Workbench.
Open
DatabaseConnection.java
and change
String username = "root";
String password = "YOUR_PASSWORD";to your MySQL credentials.
javac -cp ".;lib/*" -d out src/bank/*.javajava -cp "out;lib/*" bank.Main- User enters account details.
- Java Swing sends the request.
- BankService processes the request.
- JDBC executes SQL queries.
- MySQL stores or retrieves data.
- Results are displayed back in the GUI.
- User Login
- Multiple Account Types
- Fund Transfer
- Interest Calculation
- PDF Statement Export
- Admin Dashboard
- Dark Mode
- JavaFX Version
Blessen Thomas
Bachelor of Computer Applications (Data Analytics)
Atria Institute of Technology
GitHub: https://github.com/blessen-thomas

