StudentResultMS/
├── src/com/studentresult/
│ ├── model/
│ │ ├── Student.java ← Entity class
│ │ ├── Subject.java ← Entity class
│ │ └── Result.java ← Entity class with grade logic
│ ├── dao/
│ │ ├── StudentDAO.java ← CRUD via JDBC PreparedStatements
│ │ ├── SubjectDAO.java ← CRUD via JDBC
│ │ └── ResultDAO.java ← Marks entry + result report query
│ ├── service/
│ │ └── ResultService.java ← Business logic + validation layer
│ ├── util/
│ │ └── DBConnection.java ← Singleton JDBC connection
│ └── main/
│ └── Main.java ← Menu-driven console UI
├── database/
│ └── setup.sql ← Run this first!
└── README.md
- Java JDK 11 or higher
- MySQL Server running locally
- mysql-connector-java.jar (download and save to
lib/folder)
Open MySQL and run:
source path/to/StudentResultMS/database/setup.sqlOpen src/com/studentresult/util/DBConnection.java and change:
private static final String PASSWORD = "your_password"; // ← put your MySQL root password# From the StudentResultMS/ folder
javac -cp lib/mysql-connector-java.jar -d out \
src/com/studentresult/util/DBConnection.java \
src/com/studentresult/model/*.java \
src/com/studentresult/dao/*.java \
src/com/studentresult/service/ResultService.java \
src/com/studentresult/main/Main.javajava -cp out:lib/mysql-connector-java.jar com.studentresult.main.Main(On Windows, use ; instead of : in classpath)
- Add / View / Update / Delete Students
- Add / View / Delete Subjects
- Enter marks per student per subject
- Auto grade calculation: O / A+ / A / B / C / F
- Formatted result report with total, percentage & PASS/FAIL status
- Input validation (marks range, empty fields)
- Singleton DB connection pattern
- DAO + Service layered architecture