V5.0 位daoImpl增加构造器

 

 

 

 

 

【语音分离】基于平均谐波结构建模的无监督单声道音乐声源分离(Matlab代码实现)内容概要:本文介绍了基于平均谐波结构建模的无监督单声道音乐声源分离方法,并提供了相应的Matlab代码实现。该方法通过对音乐信号中的谐波结构进行建模,利用音源间的频率特征差异,实现对混合音频中不同乐器或人声成分的有效分离。整个过程无需标注数据,属于无监督学习范畴,适用于单通道录音场景下的语音与音乐分离任务。文中强调了算法的可复现性,并附带完整的仿真资源链接,便于读者学习与验证。; 适合人群:具备一定信号处理基础和Matlab编程能力的高校学生、科研人员及从事音频处理、语音识别等相关领域的工程师;尤其适合希望深入理解声源分离原理并进行算法仿真实践的研究者。; 使用场景及目标:①用于音乐音频中人声与伴奏的分离,或不同乐器之间的分离;②支持无监督条件下的语音处理研究,推动盲源分离技术的发展;③作为学术论文复现、课程项目开发或科研原型验证的技术参考。; 阅读建议:建议读者结合提供的Matlab代码与网盘资料同步运行调试,重点关注谐波建模与频谱分解的实现细节,同时可扩展学习盲源分离中的其他方法如独立成分分析(ICA)或非负矩阵分解(NMF),以加深对音频信号分离机制的理解。
内容概要:本文系统介绍了新能源汽车领域智能底盘技术的发展背景、演进历程、核心技术架构及创新形态。文章指出智能底盘作为智能汽车的核心执行,通过线控化(X-By-Wire)和域控化实现驱动、制动、转向、悬架的精准主动控制,支撑高阶智能驾驶落地。技术发展历经机械、机电混合到智能三个阶段,当前以线控转向、线控制动、域控制器等为核心,并辅以传感器、车规级芯片、功能安全等配套技术。文中还重点探讨了“智能滑板底盘”这一创新形态,强调其高度集成化、模块化优势及其在成本、灵活性、空间利用等方面的潜力。最后通过“2025智能底盘先锋计划”的实车测试案例,展示了智能底盘在真实场景中的安全与性能表现,推动技术从研发走向市场验证。; 适合人群:汽车电子工程师、智能汽车研发人员、新能源汽车领域技术人员及对智能底盘技术感兴趣的从业者;具备一定汽车工程或控制系统基础知识的专业人士。; 使用场景及目标:①深入了解智能底盘的技术演进路径与系统架构;②掌握线控技术、域控制器、滑板底盘等关键技术原理与应用场景;③为智能汽车底盘研发、系统集成与技术创新提供理论支持与实践参考。; 阅读建议:建议结合实际车型和技术标准进行延伸学习,关注政策导向与行业测试动态,注重理论与实车验证相结合,全面理解智能底盘从技术构想到商业化落地的全过程。
【顶级EI复现】计及连锁故障传播路径的电力系统 N-k 多阶段双优化及故障场景筛选模型(Matlab代码实现)内容概要:本文介绍了名为《【顶级EI复现】计及连锁故障传播路径的电力系统 N-k 多阶段双优化及故障场景筛选模型(Matlab代码实现)》的技术资源,重点围绕电力系统中连锁故障的传播路径展开研究,提出了一种N-k多阶段双优化模型,并结合故障场景筛选方法,用于提升电力系统在复杂故障条件下的安全性与鲁棒性。该模型通过Matlab代码实现,具备较强的工程应用价值和学术参考意义,适用于电力系统风险评估、脆弱性分析及预防控制策略设计等场景。文中还列举了大量相关的科研技术支持方向,涵盖智能优化算法、机器学习、路径规划、信号处理、电力系统管理等多个领域,展示了广泛的仿真与复现能力。; 适合人群:具备电力系统、自动化、电气工程等相关背景,熟悉Matlab编程,有一定科研基础的研究生、高校教师及工程技术人员。; 使用场景及目标:①用于电力系统连锁故障建模与风险评估研究;②支撑高水平论文(如EI/SCI)的模型复现与算法验证;③为电网安全分析、故障传播防控提供优化决策工具;④结合YALMIP等工具进行数学规划求解,提升科研效率。; 阅读建议:建议读者结合提供的网盘资源,下载完整代码与案例进行实践操作,重点关注双优化结构与场景筛选逻辑的设计思路,同时可参考文档中提及的其他复现案例拓展研究视野。
非常好!我们已经定义了 `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、付费专栏及课程。

余额充值