mirror of
https://github.com/sabazadam/Se302.git
synced 2025-12-31 20:31:22 +00:00
Created database schema SQL scripts.
Created tables: schedules, exam_assignments. Implemented DAO classes for database operations.
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
module org.example.se302 {
|
||||
requires javafx.controls;
|
||||
requires javafx.fxml;
|
||||
requires java.sql;
|
||||
|
||||
// Export all packages
|
||||
exports org.example.se302;
|
||||
|
||||
67
src/main/java/org/example/se302/data/DatabaseManager.java
Normal file
67
src/main/java/org/example/se302/data/DatabaseManager.java
Normal file
@@ -0,0 +1,67 @@
|
||||
package org.example.se302.data;
|
||||
|
||||
import java.sql.Connection;
|
||||
import java.sql.DriverManager;
|
||||
import java.sql.SQLException;
|
||||
import java.sql.Statement;
|
||||
|
||||
public class DatabaseManager {
|
||||
|
||||
private static final String JDBC_URL = "jdbc:sqlite:src/main/resources/db/exam_scheduler.db";
|
||||
|
||||
private static final String CREATE_SCHEDULES_TABLE =
|
||||
"CREATE TABLE IF NOT EXISTS schedules (" +
|
||||
" schedule_id INTEGER PRIMARY KEY AUTOINCREMENT," +
|
||||
" name TEXT NOT NULL," +
|
||||
" description TEXT," +
|
||||
" created_at DATETIME NOT NULL," +
|
||||
" last_modified DATETIME NOT NULL," +
|
||||
" is_finalized BOOLEAN NOT NULL DEFAULT 0," +
|
||||
" config_num_days INTEGER," +
|
||||
" config_slots_per_day INTEGER," +
|
||||
" config_start_date TEXT" +
|
||||
");";
|
||||
|
||||
private static final String CREATE_EXAM_ASSIGNMENTS_TABLE =
|
||||
"CREATE TABLE IF NOT EXISTS exam_assignments (" +
|
||||
" assignment_id INTEGER PRIMARY KEY AUTOINCREMENT," +
|
||||
" schedule_id INTEGER NOT NULL," +
|
||||
" course_code TEXT NOT NULL," +
|
||||
" student_count INTEGER NOT NULL," +
|
||||
" is_locked BOOLEAN NOT NULL DEFAULT 0," +
|
||||
" day_index INTEGER," +
|
||||
" timeslot_index INTEGER," +
|
||||
" classroom_id TEXT," +
|
||||
" FOREIGN KEY (schedule_id) REFERENCES schedules(schedule_id) ON DELETE CASCADE" +
|
||||
");";
|
||||
|
||||
public static Connection getConnection() throws SQLException {
|
||||
return DriverManager.getConnection(JDBC_URL);
|
||||
}
|
||||
|
||||
public static void CreateTable() throws SQLException
|
||||
{
|
||||
try (Connection conn = getConnection();
|
||||
Statement stmt = conn.createStatement()) {
|
||||
|
||||
// 1. Schedules tablosunu oluştur
|
||||
stmt.execute(CREATE_SCHEDULES_TABLE);
|
||||
|
||||
// 2. Exam Assignments tablosunu oluştur
|
||||
stmt.execute(CREATE_EXAM_ASSIGNMENTS_TABLE);
|
||||
|
||||
System.out.println("Veritabanı tabloları başarıyla oluşturuldu veya kontrol edildi.");
|
||||
|
||||
} catch (SQLException e) {
|
||||
System.err.println("Veritabanı başlatılırken hata oluştu: " + e.getMessage());
|
||||
e.printStackTrace();
|
||||
throw new RuntimeException("Veritabanı başlatma başarısız.", e);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
19
src/main/java/org/example/se302/data/ExamAssignmentDAO.java
Normal file
19
src/main/java/org/example/se302/data/ExamAssignmentDAO.java
Normal file
@@ -0,0 +1,19 @@
|
||||
package org.example.se302.data;
|
||||
|
||||
import org.example.se302.model.ExamAssignment;
|
||||
|
||||
public class ExamAssignmentDAO {
|
||||
|
||||
public static void SaveExamAssignment(ExamAssignment examAssignment)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public static void DeleteExamAssignment(ExamAssignment examAssignment)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
22
src/main/java/org/example/se302/data/ScheduleDAO.java
Normal file
22
src/main/java/org/example/se302/data/ScheduleDAO.java
Normal file
@@ -0,0 +1,22 @@
|
||||
package org.example.se302.data;
|
||||
|
||||
import org.example.se302.model.ExamSchedule;
|
||||
|
||||
public class ScheduleDAO {
|
||||
|
||||
|
||||
public static void SaveSchedule(ExamSchedule examSchedule)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public static void DeleteSchedule(ExamSchedule examSchedule)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user