commit 79a78869c439e400bb49ba99cb3b0e2bb9b16b8b Author: jiandan Date: Tue Apr 14 16:45:44 2026 +0800 学生成绩管理系统 diff --git a/src/com/lizhou/service/ClazzService.java b/src/com/lizhou/service/ClazzService.java new file mode 100644 index 0000000..908f3b0 --- /dev/null +++ b/src/com/lizhou/service/ClazzService.java @@ -0,0 +1,134 @@ +package com.lizhou.service; + +import java.sql.Connection; +import java.util.HashMap; +import java.util.LinkedList; +import java.util.List; +import java.util.Map; + +import com.lizhou.bean.Clazz; +import com.lizhou.bean.Grade; +import com.lizhou.bean.Page; +import com.lizhou.bean.Student; +import com.lizhou.dao.impl.BaseDaoImpl; +import com.lizhou.dao.impl.ClazzDaoImpl; +import com.lizhou.dao.inter.BaseDaoInter; +import com.lizhou.dao.inter.ClazzDaoInter; +import com.lizhou.tools.MysqlTool; +import com.lizhou.tools.StringTool; + +import net.sf.json.JSONArray; +import net.sf.json.JSONObject; +import net.sf.json.JsonConfig; + +/** + * 年级服务层 + * @author bojiangzhou + * + */ +public class ClazzService { + + ClazzDaoInter dao = new ClazzDaoImpl(); + + /** + * 获取指定年级下的班级 + * @param gid 年级ID + * @return JSON格式的班级 + */ + public String getClazzList(String gradeid){ + int id = Integer.parseInt(gradeid); + //获取数据 + List list = dao.getList(Clazz.class, "SELECT * FROM clazz WHERE gradeid=?", new Object[]{id}); + //json化 + JsonConfig config = new JsonConfig(); + config.setExcludes(new String[]{"grade", "studentList"}); + String result = JSONArray.fromObject(list, config).toString(); + + return result; + } + + /** + * 获取班级详细信息 + * @param gradeid + * @param page + * @return + */ + public String getClazzDetailList(String gradeid, Page page) { + //获取数据 + List list = dao.getClazzDetailList(gradeid, page); + //获取总记录数 + long total = 0; + if(!StringTool.isEmpty(gradeid)){ + int gid = Integer.parseInt(gradeid); + total = dao.count("SELECT COUNT(*) FROM clazz WHERE gradeid=?", new Object[]{gid}); + } else { + total = dao.count("SELECT COUNT(*) FROM clazz", new Object[]{}); + } + //定义Map + Map jsonMap = new HashMap(); + //total键 存放总记录数,必须的 + jsonMap.put("total", total); + //rows键 存放每页记录 list + jsonMap.put("rows", list); + //格式化Map,以json格式返回数据 + String result = JSONObject.fromObject(jsonMap).toString(); + + return result; + } + + /** + * 添加班级 + * @param name + * @param gradeid + */ + public void addClazz(String name, String gradeid) { + int gid = Integer.parseInt(gradeid); + dao.insert("INSERT INTO clazz(name, gradeid) value(?,?)", new Object[]{name, gid}); + } + + /** + * 删除班级 + * @param clazzid + * @throws Exception + */ + public void deleteClazz(int clazzid) throws Exception { + //获取连接 + Connection conn = MysqlTool.getConnection(); + try { + //开启事务 + MysqlTool.startTransaction(); + //删除成绩表 + dao.deleteTransaction(conn, "DELETE FROM escore WHERE clazzid=?", new Object[]{clazzid}); + //删除考试记录 + dao.deleteTransaction(conn, "DELETE FROM exam WHERE clazzid=?", new Object[]{clazzid}); + //删除用户 + List list = dao.getList(Student.class, "SELECT number FROM student WHERE clazzid=?", new Object[]{clazzid}); + if(list.size() > 0){ + Object[] param = new Object[list.size()]; + for(int i = 0;i < list.size();i++){ + Student stu = (Student) list.get(i); + param[i] = stu.getNumber(); + } + String sql = "DELETE FROM user WHERE account IN ("+StringTool.getMark(list.size())+")"; + dao.deleteTransaction(conn, sql, param); + //删除学生 + dao.deleteTransaction(conn, "DELETE FROM student WHERE clazzid=?", new Object[]{clazzid}); + } + //删除班级的课程和老师的关联 + dao.deleteTransaction(conn, "DELETE FROM clazz_course_teacher WHERE clazzid=?", new Object[]{clazzid}); + //最后删除班级 + dao.deleteTransaction(conn, "DELETE FROM clazz WHERE id=?", new Object[]{clazzid}); + + //提交事务 + MysqlTool.commit(); + } catch (Exception e) { + //回滚事务 + MysqlTool.rollback(); + e.printStackTrace(); + throw e; + } finally { + MysqlTool.closeConnection(); + } + } + +} diff --git a/src/com/lizhou/service/CourseService.java b/src/com/lizhou/service/CourseService.java new file mode 100644 index 0000000..d845b35 --- /dev/null +++ b/src/com/lizhou/service/CourseService.java @@ -0,0 +1,96 @@ +package com.lizhou.service; + +import java.sql.Connection; +import java.util.HashMap; +import java.util.LinkedList; +import java.util.List; +import java.util.Map; + +import com.lizhou.bean.Clazz; +import com.lizhou.bean.Course; +import com.lizhou.bean.Grade; +import com.lizhou.bean.Page; +import com.lizhou.bean.Student; +import com.lizhou.dao.impl.BaseDaoImpl; +import com.lizhou.dao.impl.ClazzDaoImpl; +import com.lizhou.dao.inter.BaseDaoInter; +import com.lizhou.dao.inter.ClazzDaoInter; +import com.lizhou.tools.MysqlTool; +import com.lizhou.tools.StringTool; + +import net.sf.json.JSONArray; +import net.sf.json.JSONObject; +import net.sf.json.JsonConfig; + +/** + * 课程服务层 + * @author bojiangzhou + * + */ +public class CourseService { + + BaseDaoInter dao = new BaseDaoImpl(); + + /** + * 获取所有课程 + * @return + */ + public String getCourseList(String gradeid){ + List list; + if(StringTool.isEmpty(gradeid)){ + list = dao.getList(Course.class, "SELECT * FROM course"); + } else{ + list = dao.getList(Course.class, + "SELECT c.* FROM course c, grade_course gc WHERE c.id=gc.courseid AND gc.gradeid=?", + new Object[]{Integer.parseInt(gradeid)}); + } + //json化 + String result = JSONArray.fromObject(list).toString(); + + return result; + } + + /** + * 添加课程 + * @param course + */ + public void addCourse(Course course) { + dao.insert("INSERT INTO course(name) value(?)", new Object[]{course.getName()}); + } + + /** + * 删除课程 + * @param courseid + * @throws Exception + */ + public void deleteClazz(int courseid) throws Exception { + //获取连接 + Connection conn = MysqlTool.getConnection(); + try { + //开启事务 + MysqlTool.startTransaction(); + //删除成绩表 + dao.deleteTransaction(conn, "DELETE FROM escore WHERE courseid=?", new Object[]{courseid}); + //删除班级的课程和老师的关联 + dao.deleteTransaction(conn, "DELETE FROM clazz_course_teacher WHERE courseid=?", new Object[]{courseid}); + //删除年级与课程关联 + dao.deleteTransaction(conn, "DELETE FROM grade_course WHERE courseid=?", new Object[]{courseid}); + //最后删除课程 + dao.deleteTransaction(conn, "DELETE FROM course WHERE id=?", new Object[]{courseid}); + + //提交事务 + MysqlTool.commit(); + } catch (Exception e) { + //回滚事务 + MysqlTool.rollback(); + e.printStackTrace(); + throw e; + } finally { + MysqlTool.closeConnection(); + } + } + + + + +}