A console-based Student Management System developed using Java, JDBC, and MySQL. This project demonstrates CRUD operations, database connectivity, Object-Oriented Programming (OOP), and the DAO (Data Access Object) design pattern.
This application allows users to manage student records from a console interface. It follows a modular architecture by separating database access, business logic, and user interaction into different packages.
The project was built to strengthen practical knowledge of:
- Java Programming
- JDBC Connectivity
- MySQL Database
- Object-Oriented Programming
- DAO Design Pattern
- CRUD Operations
- Input Validation
- Exception Handling
- Git & GitHub
| Feature | Status |
|---|---|
| Add Student | โ |
| View Students | โ |
| Search Student | โ |
| Update Student | โ |
| Delete Student | โ |
| Email Validation | โ |
| Phone Validation | โ |
| Duplicate Email Prevention | โ |
| PreparedStatement | โ |
| Exception Handling | โ |
| Technology | Purpose |
|---|---|
| Java | Programming Language |
| JDBC | Database Connectivity |
| MySQL | Database |
| Git | Version Control |
| GitHub | Repository Hosting |
| VS Code | IDE |
+------------------+
| Console UI |
+---------+--------+
|
v
+------------------+
| Student Service |
+---------+--------+
|
v
+------------------+
| Student DAO |
+---------+--------+
|
v
+------------------+
| JDBC Connection |
+---------+--------+
|
v
+------------------+
| MySQL DB |
+------------------+
User
โ
Main Menu
โ
Choose Operation
โ
Input Validation
โ
DAO Layer
โ
PreparedStatement
โ
MySQL Database
โ
Success / Failure
โ
Console Output
StudentManagementSystem
โ
โโโ lib
โ โโโ mysql-connector-j.jar
โ
โโโ screenshots
โ
โโโ src
โ โโโ dao
โ โ โโโ StudentDAO.java
โ โ
โ โโโ db
โ โ โโโ DBConnection.java
โ โ
โ โโโ model
โ โ โโโ Student.java
โ โ
โ โโโ ui
โ โ โโโ MainMenu.java
โ โ
โ โโโ App.java
โ
โโโ README.md
โโโ .gitignore
| Package | Responsibility |
|---|---|
| dao | Performs CRUD operations |
| db | Manages database connection |
| model | Student entity class |
| ui | Console interface |
| App.java | Entry point of application |
Database Name
student_management_systemTable
studentsCREATE TABLE students (
id INT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(100) NOT NULL,
email VARCHAR(100) UNIQUE NOT NULL,
phone VARCHAR(15),
department VARCHAR(100)
);+------------------------------------------------+
| STUDENTS TABLE |
+------------------------------------------------+
| id (PK) |
| name |
| email |
| phone |
| department |
+------------------------------------------------+
- Object-Oriented Programming
- DAO Design Pattern
- JDBC Connectivity
- CRUD Operations
- SQL
- PreparedStatement
- ResultSet
- Exception Handling
- Input Validation
- Package Organization
Clone Repository
git clone https://github.com/codefuser/student-management-system-java.gitOpen project inside VS Code.
Compile
javac -cp ".;lib/mysql-connector-j.jar" src/App.javaRun
java -cp ".;lib/mysql-connector-j.jar;src" Appscreenshots/main-menu.png
screenshots/add-student.png
screenshots/view-students.png
screenshots/search-student.png
screenshots/update-student.png
screenshots/delete-student.png
screenshots/mysql-table.png
- Built using Java, JDBC, and MySQL.
- Implements complete CRUD functionality.
- Uses DAO Design Pattern.
- Uses PreparedStatement to execute SQL queries.
- Prevents duplicate email entries.
- Performs input validation.
- Organized using modular package structure.
- Easy to extend and maintain.
Through this project, I gained practical experience in:
- Java Programming
- Object-Oriented Programming
- JDBC API
- MySQL Integration
- SQL Queries
- CRUD Operations
- DAO Design Pattern
- Exception Handling
- Validation Techniques
- Git & GitHub Workflow
- Spring Boot REST API
- JavaFX User Interface
- User Authentication
- Admin Dashboard
- Role-Based Access
- Export to CSV
- Docker Support
- Maven Project Structure
- Unit Testing with JUnit
- Logging Framework
Start
โ
Display Menu
โ
User selects option
โ
Validate Input
โ
DAO Method Called
โ
Execute SQL Query
โ
Receive Result
โ
Display Response
โ
Repeat Until Exit
- Layered Project Structure
- Reusable Database Connection
- PreparedStatement
- Input Validation
- Exception Handling
- Modular Code Organization
- Core Java
- JDBC
- SQL
- MySQL
- OOP
- DAO Pattern
- CRUD Operations
- Git
- GitHub
This project is created for learning and educational purposes.
Joseph
- GitHub: https://github.com/codefuser
- LinkedIn: https://www.linkedin.com/in/joseph-fullstack/