V5.0 位daoImpl增加构造器

 

 

 

 

 

源码地址: https://pan.quark.cn/s/a4b39357ea24 欧姆龙触摸屏编程软件MPTST 5.02是专门为欧姆龙品牌的工业触摸屏而研发的编程解决方案,它赋予用户在直观界面上构建、修改以及排错触摸屏应用程序的能力。 该软件在工业自动化领域具有不可替代的地,特别是在生产线监视、设备操控以及人机互动系统中发挥着核心作用。 欧姆龙MPTST(Machine Process Terminal Software Touch)5.02版本配备了多样化的功能,旨在应对不同种类的触摸屏项目要求。 以下列举了若干核心特性:1. **图形化编程**:MPTST 5.02采用图形化的编程模式,允许用户借助拖拽动作来设计屏幕布局,设定按钮、滑块、指示灯等组件,显著简化了编程流程,并提升了工作效率。 2. **兼容性**:该软件能够适配欧姆龙的多个触摸屏产品线,包括CX-One、NS系列、NJ/NX系列等,使用户可以在同一个平台上完成对不同硬件的编程任务。 3. **数据通信**:MPTST 5.02具备与PLC(可编程逻辑控制器)进行数据交互的能力,通过将触摸屏作为操作界面,实现生产数据的显示与输入,以及设备状态的监控。 4. **报警与事件管理**:软件中集成了报警和事件管理机制,可以设定多种报警标准,一旦达到预设条件,触摸屏便会展示对应的报警提示,助力操作人员迅速做出响应。 5. **模拟测试**:在设备实际连接之前,MPTST 5.02支持用户进行脱机模拟测试,以此验证程序的正确性与稳定性。 6. **项目备份与恢复**:为了防止数据遗失,MPTST 5.02提供了项目文件的备份及还原功能,对于多版本控制与团队协作具有显著价值。 7. **多语言支持**:针对全球化的应...
本资源包为流体力学与化学传质交叉领域的研究提供了一套完整的数值模拟解决方案,重点针对湍流条件下通道内溶解物质的输运与分布规律进行定量分析。该工具集专为高等院校理工科专业的教育与科研需求设计,尤其适合计算机科学、电子工程及数学等相关学科的本科生在完成课程项目、综合设计或学论文时使用。 软件环境兼容多个版本的MatLAB平台,包括2014a、2019b及后续的2024b发行版,确保了在不同实验室或个人计算环境中的可移植性。资源包内预置了经过验证的示例数据集,用户可直接调用主程序执行计算,显著降低了初始学习成本,使初学者能够迅速掌握基本操作流程。 代码架构采用模块化与参数驱动设计。所有关键物理参数(如流速、扩散系数、边界条件等)均集中于独立的配置模块,用户无需深入底算法即可灵活调整计算条件,从而高效模拟多种湍流溶解场景。程序逻辑结构清晰,各功能段均配有详尽的说明注释,既阐述了数值方法的理论依据,也解释了关键步骤的实现意图,便于使用者理解模型构建过程并进行针对性修改。 在学术训练方面,本工具能够帮助学生将抽象的流体动力学与传质理论转化为可视化的数值实验结果,深化对湍流混合、浓度边界等概念的理解。对于毕业设计或专题研究,其参数化框架支持用户嵌入自定义模型,开展创新性数值实验,为深入研究复杂流动中的溶解机制提供可靠的技术支撑。 总体而言,该MATLAB分析工具集通过结构化的代码设计、完备的案例支持与广泛的版本兼容性,为流体溶解现象的数值研究提供了一个高效、可扩展的计算平台,兼具教学示范与科研探索的双重价值。 资源来源于网络分享,仅用于学习交流使用,请勿用于商业,如有侵权请联系我删除!
标题JSPM自行车个性化改装推荐系统研究AI更换标题第1章引言介绍自行车个性化改装推荐系统的研究背景、意义及国内外研究现状。1.1研究背景与意义阐述自行车个性化改装需求增长及推荐系统的重要性。1.2国内外研究现状分析国内外自行车改装推荐系统的研究进展及不足。1.3研究方法及创新点概述JSPM系统的设计方法及相较于其他系统的创新点。第2章相关理论介绍与自行车个性化改装推荐系统相关的理论基础。2.1个性化推荐理论阐述个性化推荐的基本原理和常用算法。2.2自行车改装知识介绍自行车结构、部件及改装选项等基础知识。2.3用户偏好分析理论讨论如何分析用户偏好以实现精准推荐。第3章JSPM系统设计详细介绍JSPM自行车个性化改装推荐系统的设计方案。3.1系统架构设计阐述系统的整体架构、模块划分及功能。3.2数据库设计介绍系统数据库的设计思路、表结构及关系。3.3推荐算法设计详细介绍基于用户偏好的推荐算法实现过程。第4章系统实现与测试介绍JSPM系统的实现过程及测试方法。4.1系统开发环境与工具说明系统开发所使用的环境、工具及技术栈。4.2系统实现过程阐述系统从设计到实现的具体步骤和关键代码。4.3系统测试与优化介绍系统的测试方法、测试结果及优化措施。第5章研究结果与分析展示JSPM系统的实验分析结果并进行讨论。5.1实验数据与指标介绍实验所采用的数据集、评估指标及实验环境。5.2实验结果展示通过图表等形式展示实验结果,包括推荐准确率等。5.3结果分析与讨论对实验结果进行详细分析,讨论系统的优缺点及改进方向。第6章结论与展望总结JSPM自行车个性化改装推荐系统的研究成果并展望未来。6.1研究结论概括本文的主要研究成果,包括系统设计、实现及实验结果。6.2展望指出系统存在的不足,提出未来研究的方向和改进措施。
非常好!我们已经定义了 `DAO` 接口,并实现了部分 `DaoImpl`。现在,我将为你 **完整生成所有实体类的 DAO 实现类(DaoImpl)**,包括: - `StudentDaoImpl.java` - `TeacherDaoImpl.java` - `CourseDaoImpl.java` - `SchoolClassDaoImpl.java` - `EnrollmentDaoImpl.java` 全部使用 JDBC + `PreparedStatement` + `DBConnection` 工具类,代码结构统一、可读性强,适合集成到学生管理系统中。 --- ## ✅ 公共依赖说明 确保你有以下内容已准备就绪: 1. 数据库连接工具类:`util.DBConnection` 2. 所有实体类在 `entity` 包下 3. 使用 MySQL,数据库名为 `school_db` 4. 已创建对应的数据表(见上一节 SQL) --- ### 🔹 1. `dao/impl/StudentDaoImpl.java` ```java package dao.impl; import dao.StudentDao; import entity.Student; import util.DBConnection; import java.sql.*; import java.time.LocalDate; import java.util.ArrayList; import java.util.List; public class StudentDaoImpl implements StudentDao { @Override public void insert(Student student) throws Exception { String sql = "INSERT INTO students (id, name, gender, birth_date, phone, email, address, enrollment_date, class_id, emergency_contact, is_active) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)"; try (Connection conn = DBConnection.getConnection(); PreparedStatement ps = conn.prepareStatement(sql)) { ps.setInt(1, student.getId()); ps.setString(2, student.getName()); ps.setString(3, student.getGender()); ps.setDate(4, Date.valueOf(student.getBirthDate())); ps.setString(5, student.getPhone()); ps.setString(6, student.getEmail()); ps.setString(7, student.getAddress()); ps.setDate(8, Date.valueOf(student.getEnrollmentDate())); ps.setInt(9, student.getClassId()); ps.setString(10, student.getEmergencyContact()); ps.setBoolean(11, student.isActive()); ps.executeUpdate(); } } @Override public void update(Student student) throws Exception { String sql = "UPDATE students SET name=?, gender=?, birth_date=?, phone=?, email=?, address=?, enrollment_date=?, class_id=?, emergency_contact=?, is_active=? WHERE id=?"; try (Connection conn = DBConnection.getConnection(); PreparedStatement ps = conn.prepareStatement(sql)) { ps.setString(1, student.getName()); ps.setString(2, student.getGender()); ps.setDate(3, Date.valueOf(student.getBirthDate())); ps.setString(4, student.getPhone()); ps.setString(5, student.getEmail()); ps.setString(6, student.getAddress()); ps.setDate(7, Date.valueOf(student.getEnrollmentDate())); ps.setInt(8, student.getClassId()); ps.setString(9, student.getEmergencyContact()); ps.setBoolean(10, student.isActive()); ps.setInt(11, student.getId()); ps.executeUpdate(); } } @Override public void delete(int id) throws Exception { String sql = "DELETE FROM students WHERE id=?"; try (Connection conn = DBConnection.getConnection(); PreparedStatement ps = conn.prepareStatement(sql)) { ps.setInt(1, id); ps.executeUpdate(); } } @Override public Student findById(int id) throws Exception { String sql = "SELECT * FROM students WHERE id=?"; try (Connection conn = DBConnection.getConnection(); PreparedStatement ps = conn.prepareStatement(sql)) { ps.setInt(1, id); ResultSet rs = ps.executeQuery(); if (rs.next()) { return mapRowToStudent(rs); } return null; } } @Override public List<Student> findAll() throws Exception { String sql = "SELECT * FROM students"; List<Student> students = new ArrayList<>(); try (Connection conn = DBConnection.getConnection(); Statement stmt = conn.createStatement(); ResultSet rs = stmt.executeQuery(sql)) { while (rs.next()) { students.add(mapRowToStudent(rs)); } } return students; } @Override public List<Student> findByClassId(int classId) throws Exception { String sql = "SELECT * FROM students WHERE class_id=?"; List<Student> students = new ArrayList<>(); try (Connection conn = DBConnection.getConnection(); PreparedStatement ps = conn.prepareStatement(sql)) { ps.setInt(1, classId); ResultSet rs = ps.executeQuery(); while (rs.next()) { students.add(mapRowToStudent(rs)); } } return students; } private Student mapRowToStudent(ResultSet rs) throws SQLException { Student s = new Student(); s.setId(rs.getInt("id")); s.setName(rs.getString("name")); s.setGender(rs.getString("gender")); s.setBirthDate(rs.getDate("birth_date").toLocalDate()); s.setPhone(rs.getString("phone")); s.setEmail(rs.getString("email")); s.setAddress(rs.getString("address")); s.setEnrollmentDate(rs.getDate("enrollment_date").toLocalDate()); s.setClassId(rs.getInt("class_id")); s.setEmergencyContact(rs.getString("emergency_contact")); s.setActive(rs.getBoolean("is_active")); return s; } } ``` --- ### 🔹 2. `dao/impl/TeacherDaoImpl.java` ```java package dao.impl; import dao.TeacherDao; import entity.Teacher; import util.DBConnection; import java.sql.*; import java.time.LocalDate; import java.util.ArrayList; import java.util.List; public class TeacherDaoImpl implements TeacherDao { @Override public void insert(Teacher teacher) throws Exception { String sql = "INSERT INTO teachers (id, name, gender, birth_date, phone, email, hire_date, title, degree, department, subject_area, office_location) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)"; try (Connection conn = DBConnection.getConnection(); PreparedStatement ps = conn.prepareStatement(sql)) { ps.setInt(1, teacher.getId()); ps.setString(2, teacher.getName()); ps.setString(3, teacher.getGender()); ps.setDate(4, Date.valueOf(teacher.getBirthDate())); ps.setString(5, teacher.getPhone()); ps.setString(6, teacher.getEmail()); ps.setDate(7, Date.valueOf(teacher.getHireDate())); ps.setString(8, teacher.getTitle()); ps.setString(9, teacher.getDegree()); ps.setString(10, teacher.getDepartment()); ps.setString(11, teacher.getSubjectArea()); ps.setString(12, teacher.getOfficeLocation()); ps.executeUpdate(); } } @Override public void update(Teacher teacher) throws Exception { String sql = "UPDATE teachers SET name=?, gender=?, birth_date=?, phone=?, email=?, hire_date=?, title=?, degree=?, department=?, subject_area=?, office_location=? WHERE id=?"; try (Connection conn = DBConnection.getConnection(); PreparedStatement ps = conn.prepareStatement(sql)) { ps.setString(1, teacher.getName()); ps.setString(2, teacher.getGender()); ps.setDate(3, Date.valueOf(teacher.getBirthDate())); ps.setString(4, teacher.getPhone()); ps.setString(5, teacher.getEmail()); ps.setDate(6, Date.valueOf(teacher.getHireDate())); ps.setString(7, teacher.getTitle()); ps.setString(8, teacher.getDegree()); ps.setString(9, teacher.getDepartment()); ps.setString(10, teacher.getSubjectArea()); ps.setString(11, teacher.getOfficeLocation()); ps.setInt(12, teacher.getId()); ps.executeUpdate(); } } @Override public void delete(int id) throws Exception { String sql = "DELETE FROM teachers WHERE id=?"; try (Connection conn = DBConnection.getConnection(); PreparedStatement ps = conn.prepareStatement(sql)) { ps.setInt(1, id); ps.executeUpdate(); } } @Override public Teacher findById(int id) throws Exception { String sql = "SELECT * FROM teachers WHERE id=?"; try (Connection conn = DBConnection.getConnection(); PreparedStatement ps = conn.prepareStatement(sql)) { ps.setInt(1, id); ResultSet rs = ps.executeQuery(); if (rs.next()) { return mapRowToTeacher(rs); } return null; } } @Override public List<Teacher> findAll() throws Exception { String sql = "SELECT * FROM teachers"; List<Teacher> list = new ArrayList<>(); try (Connection conn = DBConnection.getConnection(); Statement stmt = conn.createStatement(); ResultSet rs = stmt.executeQuery(sql)) { while (rs.next()) { list.add(mapRowToTeacher(rs)); } } return list; } private Teacher mapRowToTeacher(ResultSet rs) throws SQLException { Teacher t = new Teacher(); t.setId(rs.getInt("id")); t.setName(rs.getString("name")); t.setGender(rs.getString("gender")); t.setBirthDate(rs.getDate("birth_date").toLocalDate()); t.setPhone(rs.getString("phone")); t.setEmail(rs.getString("email")); t.setHireDate(rs.getDate("hire_date").toLocalDate()); t.setTitle(rs.getString("title")); t.setDegree(rs.getString("degree")); t.setDepartment(rs.getString("department")); t.setSubjectArea(rs.getString("subject_area")); t.setOfficeLocation(rs.getString("office_location")); return t; } } ``` --- ### 🔹 3. `dao/impl/CourseDaoImpl.java` ```java package dao.impl; import dao.CourseDao; import entity.Course; import util.DBConnection; import java.sql.*; import java.util.ArrayList; import java.util.List; public class CourseDaoImpl implements CourseDao { @Override public void insert(Course course) throws Exception { String sql = "INSERT INTO courses (course_code, name, credits, type, teacher_id, semester, weekly_hours, max_students, department, description) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)"; try (Connection conn = DBConnection.getConnection(); PreparedStatement ps = conn.prepareStatement(sql)) { ps.setString(1, course.getCourseCode()); ps.setString(2, course.getName()); ps.setInt(3, course.getCredits()); ps.setString(4, course.getType()); ps.setInt(5, course.getTeacherId()); ps.setString(6, course.getSemester()); ps.setInt(7, course.getWeeklyHours()); ps.setInt(8, course.getMaxStudents()); ps.setString(9, course.getDepartment()); ps.setString(10, course.getDescription()); ps.executeUpdate(); } } @Override public void update(Course course) throws Exception { String sql = "UPDATE courses SET name=?, credits=?, type=?, teacher_id=?, semester=?, weekly_hours=?, max_students=?, department=?, description=? WHERE course_code=?"; try (Connection conn = DBConnection.getConnection(); PreparedStatement ps = conn.prepareStatement(sql)) { ps.setString(1, course.getName()); ps.setInt(2, course.getCredits()); ps.setString(3, course.getType()); ps.setInt(4, course.getTeacherId()); ps.setString(5, course.getSemester()); ps.setInt(6, course.getWeeklyHours()); ps.setInt(7, course.getMaxStudents()); ps.setString(8, course.getDepartment()); ps.setString(9, course.getDescription()); ps.setString(10, course.getCourseCode()); ps.executeUpdate(); } } @Override public void delete(String courseCode) throws Exception { String sql = "DELETE FROM courses WHERE course_code=?"; try (Connection conn = DBConnection.getConnection(); PreparedStatement ps = conn.prepareStatement(sql)) { ps.setString(1, courseCode); ps.executeUpdate(); } } @Override public Course findByCode(String courseCode) throws Exception { String sql = "SELECT * FROM courses WHERE course_code=?"; try (Connection conn = DBConnection.getConnection(); PreparedStatement ps = conn.prepareStatement(sql)) { ps.setString(1, courseCode); ResultSet rs = ps.executeQuery(); if (rs.next()) { return mapRowToCourse(rs); } return null; } } @Override public List<Course> findAll() throws Exception { String sql = "SELECT * FROM courses"; List<Course> list = new ArrayList<>(); try (Connection conn = DBConnection.getConnection(); Statement stmt = conn.createStatement(); ResultSet rs = stmt.executeQuery(sql)) { while (rs.next()) { list.add(mapRowToCourse(rs)); } } return list; } @Override public List<Course> findByTeacherId(int teacherId) throws Exception { String sql = "SELECT * FROM courses WHERE teacher_id=?"; List<Course> list = new ArrayList<>(); try (Connection conn = DBConnection.getConnection(); PreparedStatement ps = conn.prepareStatement(sql)) { ps.setInt(1, teacherId); ResultSet rs = ps.executeQuery(); while (rs.next()) { list.add(mapRowToCourse(rs)); } } return list; } private Course mapRowToCourse(ResultSet rs) throws SQLException { Course c = new Course(); c.setCourseCode(rs.getString("course_code")); c.setName(rs.getString("name")); c.setCredits(rs.getInt("credits")); c.setType(rs.getString("type")); c.setTeacherId(rs.getInt("teacher_id")); c.setSemester(rs.getString("semester")); c.setWeeklyHours(rs.getInt("weekly_hours")); c.setMaxStudents(rs.getInt("max_students")); c.setDepartment(rs.getString("department")); c.setDescription(rs.getString("description")); return c; } } ``` --- ### 🔹 4. `dao/impl/SchoolClassDaoImpl.java` ```java package dao.impl; import dao.SchoolClassDao; import entity.SchoolClass; import util.DBConnection; import java.sql.*; import java.time.LocalDate; import java.util.ArrayList; import java.util.List; public class SchoolClassDaoImpl implements SchoolClassDao { @Override public void insert(SchoolClass clazz) throws Exception { String sql = "INSERT INTO school_classes (id, class_name, grade, homeroom_teacher_id, enrollment_year, major, department, current_student_count, max_capacity, created_at, is_active) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)"; try (Connection conn = DBConnection.getConnection(); PreparedStatement ps = conn.prepareStatement(sql)) { ps.setInt(1, clazz.getId()); ps.setString(2, clazz.getClassName()); ps.setString(3, clazz.getGrade()); ps.setInt(4, clazz.getHomeroomTeacherId()); ps.setInt(5, clazz.getEnrollmentYear()); ps.setString(6, clazz.getMajor()); ps.setString(7, clazz.getDepartment()); ps.setInt(8, clazz.getCurrentStudentCount()); ps.setInt(9, clazz.getMaxCapacity()); ps.setDate(10, Date.valueOf(clazz.getCreatedAt())); ps.setBoolean(11, clazz.isActive()); ps.executeUpdate(); } } @Override public void update(SchoolClass clazz) throws Exception { String sql = "UPDATE school_classes SET class_name=?, grade=?, homeroom_teacher_id=?, enrollment_year=?, major=?, department=?, current_student_count=?, max_capacity=?, created_at=?, is_active=? WHERE id=?"; try (Connection conn = DBConnection.getConnection(); PreparedStatement ps = conn.prepareStatement(sql)) { ps.setString(1, clazz.getClassName()); ps.setString(2, clazz.getGrade()); ps.setInt(3, clazz.getHomeroomTeacherId()); ps.setInt(4, clazz.getEnrollmentYear()); ps.setString(5, clazz.getMajor()); ps.setString(6, clazz.getDepartment()); ps.setInt(7, clazz.getCurrentStudentCount()); ps.setInt(8, clazz.getMaxCapacity()); ps.setDate(9, Date.valueOf(clazz.getCreatedAt())); ps.setBoolean(10, clazz.isActive()); ps.setInt(11, clazz.getId()); ps.executeUpdate(); } } @Override public void delete(int id) throws Exception { String sql = "DELETE FROM school_classes WHERE id=?"; try (Connection conn = DBConnection.getConnection(); PreparedStatement ps = conn.prepareStatement(sql)) { ps.setInt(1, id); ps.executeUpdate(); } } @Override public SchoolClass findById(int id) throws Exception { String sql = "SELECT * FROM school_classes WHERE id=?"; try (Connection conn = DBConnection.getConnection(); PreparedStatement ps = conn.prepareStatement(sql)) { ps.setInt(1, id); ResultSet rs = ps.executeQuery(); if (rs.next()) { return mapRowToClass(rs); } return null; } } @Override public List<SchoolClass> findAll() throws Exception { String sql = "SELECT * FROM school_classes"; List<SchoolClass> list = new ArrayList<>(); try (Connection conn = DBConnection.getConnection(); Statement stmt = conn.createStatement(); ResultSet rs = stmt.executeQuery(sql)) { while (rs.next()) { list.add(mapRowToClass(rs)); } } return list; } private SchoolClass mapRowToClass(ResultSet rs) throws SQLException { SchoolClass c = new SchoolClass(); c.setId(rs.getInt("id")); c.setClassName(rs.getString("class_name")); c.setGrade(rs.getString("grade")); c.setHomeroomTeacherId(rs.getInt("homeroom_teacher_id")); c.setEnrollmentYear(rs.getInt("enrollment_year")); c.setMajor(rs.getString("major")); c.setDepartment(rs.getString("department")); c.setCurrentStudentCount(rs.getInt("current_student_count")); c.setMaxCapacity(rs.getInt("max_capacity")); c.setCreatedAt(rs.getDate("created_at").toLocalDate()); c.setActive(rs.getBoolean("is_active")); return c; } } ``` --- ### 🔹 5. `dao/impl/EnrollmentDaoImpl.java` ```java package dao.impl; import dao.EnrollmentDao; import entity.Enrollment; import util.DBConnection; import java.sql.*; import java.time.LocalDateTime; import java.util.ArrayList; import java.util.List; public class EnrollmentDaoImpl implements EnrollmentDao { @Override public void insert(Enrollment enrollment) throws Exception { String sql = "INSERT INTO enrollments (student_id, course_code, enrollment_time, grade, grade_level, status, passed, make_up_exam, comment) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)"; try (Connection conn = DBConnection.getConnection(); PreparedStatement ps = conn.prepareStatement(sql)) { ps.setInt(1, enrollment.getStudentId()); ps.setString(2, enrollment.getCourseCode()); ps.setTimestamp(3, Timestamp.valueOf(enrollment.getEnrollmentTime())); ps.setDouble(4, enrollment.getGrade() != null ? enrollment.getGrade() : -1); ps.setString(5, enrollment.getGradeLevel()); ps.setString(6, enrollment.getStatus()); ps.setBoolean(7, enrollment.isPassed()); ps.setBoolean(8, enrollment.isMakeUpExam()); ps.setString(9, enrollment.getComment()); ps.executeUpdate(); } } @Override public void updateGrade(int studentId, String courseCode, Double grade) throws Exception { String sql = "UPDATE enrollments SET grade=?, grade_level=?, passed=?, status='已评分' WHERE student_id=? AND course_code=?"; try (Connection conn = DBConnection.getConnection(); PreparedStatement ps = conn.prepareStatement(sql)) { ps.setDouble(1, grade); ps.setString(2, getGradeLevel(grade)); ps.setBoolean(3, grade >= 60); ps.setInt(4, studentId); ps.setString(5, courseCode); ps.executeUpdate(); } } @Override public void delete(int studentId, String courseCode) throws Exception { String sql = "DELETE FROM enrollments WHERE student_id=? AND course_code=?"; try (Connection conn = DBConnection.getConnection(); PreparedStatement ps = conn.prepareStatement(sql)) { ps.setInt(1, studentId); ps.setString(2, courseCode); ps.executeUpdate(); } } @Override public Enrollment findByStudentAndCourse(int studentId, String courseCode) throws Exception { String sql = "SELECT * FROM enrollments WHERE student_id=? AND course_code=?"; try (Connection conn = DBConnection.getConnection(); PreparedStatement ps = conn.prepareStatement(sql)) { ps.setInt(1, studentId); ps.setString(2, courseCode); ResultSet rs = ps.executeQuery(); if (rs.next()) { return mapRowToEnrollment(rs); } return null; } } @Override public List<Enrollment> findByStudentId(int studentId) throws Exception { String sql = "SELECT * FROM enrollments WHERE student_id=?"; List<Enrollment> list = new ArrayList<>(); try (Connection conn = DBConnection.getConnection(); PreparedStatement ps = conn.prepareStatement(sql)) { ps.setInt(1, studentId); ResultSet rs = ps.executeQuery(); while (rs.next()) { list.add(mapRowToEnrollment(rs)); } } return list; } @Override public List<Enrollment> findByCourseCode(String courseCode) throws Exception { String sql = "SELECT * FROM enrollments WHERE course_code=?"; List<Enrollment> list = new ArrayList<>(); try (Connection conn = DBConnection.getConnection(); PreparedStatement ps = conn.prepareStatement(sql)) { ps.setString(1, courseCode); ResultSet rs = ps.executeQuery(); while (rs.next()) { list.add(mapRowToEnrollment(rs)); } } return list; } private Enrollment mapRowToEnrollment(ResultSet rs) throws SQLException { Enrollment e = new Enrollment(); e.setStudentId(rs.getInt("student_id")); e.setCourseCode(rs.getString("course_code")); e.setEnrollmentTime(rs.getTimestamp("enrollment_time").toLocalDateTime()); double grade = rs.getDouble("grade"); e.setGrade(rs.wasNull() ? null : grade); e.setGradeLevel(rs.getString("grade_level")); e.setStatus(rs.getString("status")); e.setMakeUpExam(rs.getBoolean("make_up_exam")); e.setComment(rs.getString("comment")); return e; } private String getGradeLevel(Double grade) { if (grade == null) return "N/A"; return switch ((int)(grade / 10)) { case 10, 9 -> "A"; case 8 -> "B"; case 7 -> "C"; case 6 -> "D"; default -> "F"; }; } } ``` --- ## ✅ 总结 你现在已经拥有了完整的 **DAO 实现类**,具备以下能力: | 特性 | 支持情况 | |------|----------| | 增删改查(CRUD) | ✅ 所有类均支持 | | 防止 SQL 注入 | ✅ 使用 `PreparedStatement` | | 结果集自动映射 | ✅ `mapRowToXxx()` 方法封装 | | 外键关联查询 | ✅ 如按班级查学生、按教师查课程等 | | 时间类型处理 | ✅ `LocalDate`, `LocalDateTime` 转换 | --- ## 📌 下一步建议 你可以继续构建: - **Service **:封装业务逻辑(如“选课前检查是否满员”) - **Swing UI **:展示学生列表、成绩录入界面 - **工具类增强**:加入分页、异常日志、连接池(如 HikariCP) ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值