A Java desktop application that integrates a MySQL database into a student information management system. Built with Java Swing for the GUI and JDBC for database connectivity, the system retrieves student records and exam attempt data supervised by professors.
The project extends an existing prototype with SQL query implementation, ER schema updates to include professors, and a modified UI to display supervisor details.
| Feature | Detail |
|---|---|
| Database integration | JDBC connection to MySQL — real and dummy mode supported |
| Student records | Query and display all students from the database |
| Attempt tracking | Retrieve exam attempts supervised by a specific professor |
| Supervisor display | Attempts window shows professor name, employee number, and research field |
| Swing GUI | Desktop UI with an attempts frame for structured data display |
| Dummy mode | Runs without a live DB connection for offline testing |
StudentInformationSystem/
│
└── StudentInformationSystem/
├── src/
│ └── student/info/system/
│ ├── StudentInformationSystem.java # Entry point
│ ├── DatabaseAccessor.java # JDBC connection & SQL queries
│ ├── Student.java # Student data model
│ ├── Attempt.java # Exam attempt data model
│ └── AttemptsFrame.java # Swing UI — attempts display
│
└── lib/
└── mysql-connector-j-8.0.33.jar # MySQL JDBC driver
The system was extended to include a Professor entity alongside Students and Attempts:
| Entity | Key Attributes |
|---|---|
| Student | studentID, name, programID |
| Program | programID, name |
| Attempt | attemptID, studentID, professorID, grade |
| Professor | professorID, firstName, lastName, employeeNumber, researchField |
Key queries implemented:
-- Retrieve all students with their program
SELECT * FROM Student_info.STUDENT
JOIN PROGRAM ON Student.programID = PROGRAM.programID;
-- Retrieve all attempts supervised by a specific professor
SELECT * FROM ATTEMPT
WHERE professorID = ?;Prerequisites: Java 8+, MySQL server, IntelliJ IDEA or Eclipse
CREATE DATABASE Student_info;
-- Run your schema setup scriptString dbUrl = "jdbc:mysql://localhost:3306/Student_info";
String username = "your_user";
String password = "your_password";# Compile
javac -cp lib/mysql-connector-j-8.0.33.jar -d bin src/student/info/system/*.java
# Run
java -cp bin:lib/mysql-connector-j-8.0.33.jar student.info.system.StudentInformationSystemUse
"dummy"as the DB URL to run without a database connection.
| Component | Technology |
|---|---|
| Language | Java |
| Database | MySQL |
| Connectivity | JDBC (mysql-connector-j 8.0.33) |
| GUI | Java Swing |
| Modelling | ER Diagram · Relational Schema |