diff --git a/javaweb_project/src/com/hua/jdbcutil/JDBCUtils.java b/javaweb_project/src/com/hua/jdbcutil/JDBCUtils.java index fc7d779..ebd6c43 100644 --- a/javaweb_project/src/com/hua/jdbcutil/JDBCUtils.java +++ b/javaweb_project/src/com/hua/jdbcutil/JDBCUtils.java @@ -6,34 +6,47 @@ import java.sql.SQLException; import javax.sql.DataSource; import com.mchange.v2.c3p0.ComboPooledDataSource; + /** - * JDBC操作的工具类 - * @author hua + * `JDBCUtils`类是一个用于JDBC操作的工具类,它提供了获取数据库连接以及关闭连接的便捷方法,旨在简化在Java项目中与数据库进行交互时的连接管理操作。 * + * @author hua */ public class JDBCUtils { + + // 用于存储数据源对象,这里使用了C3P0连接池中的ComboPooledDataSource实现类来管理数据库连接,设置为静态变量保证全局唯一且只会被初始化一次。 private static DataSource dataSource = null; - - static{ - //数据源只能被创建一次 + + // 静态代码块,在类加载时执行,用于初始化数据源对象。 + // 这里通过指定配置名称("hua.project")创建了一个ComboPooledDataSource实例,意味着它会根据名为"hua.project"的配置信息来配置数据库连接池相关参数,例如数据库驱动、URL、用户名、密码等(这些配置信息通常在对应的配置文件中定义)。 + // 由于是静态代码块,所以这个初始化操作只会执行一次,保证了整个应用中数据源的唯一性。 + static { + // 数据源只能被创建一次 dataSource = new ComboPooledDataSource("hua.project"); } - + /** - * - * @return 数据源的一个Connection对象 - * @throws SQLException + * 获取数据库连接的方法。 + * 该方法通过调用数据源对象(`dataSource`)的`getConnection`方法来获取一个数据库连接对象(`Connection`),这个连接对象可以后续用于执行SQL语句等数据库操作。 + * 如果获取连接过程中出现`SQLException`异常(例如数据库配置错误、连接数已满等原因导致无法获取连接),则会将异常抛给调用者进行相应处理。 + * + * @return 返回数据源的一个`Connection`对象,用于后续与数据库进行交互操作,如执行查询、更新等SQL语句。 + * @throws SQLException 如果在获取数据库连接时出现问题,例如数据库连接配置错误、连接池已满等情况,将会抛出此异常,由调用者决定如何处理。 */ - public static Connection getConnection() throws SQLException{ + public static Connection getConnection() throws SQLException { return dataSource.getConnection(); } - + /** - * 关闭Connection连接 - * @param conn + * 关闭数据库连接的方法。 + * 此方法用于安全地关闭给定的`Connection`对象,避免因未关闭连接导致的资源泄露问题。 + * 首先会判断传入的`Connection`对象是否为`null`,如果不为`null`,则尝试调用其`close`方法来关闭连接,若关闭过程中出现异常(例如网络问题、数据库服务器异常等原因导致关闭失败), + * 则会将异常信息打印出来(通过`e.printStackTrace()`),方便在调试时查看具体出错原因,但不会将异常继续向外抛出,以避免影响上层业务逻辑对其他资源的正常处理。 + * + * @param conn 要关闭的数据库连接对象,通常是通过`getConnection`方法获取到的连接,在使用完毕后应该调用此方法来释放资源。 */ - public static void closeConnection(Connection conn){ - if(conn != null){ + public static void closeConnection(Connection conn) { + if (conn!= null) { try { conn.close(); } catch (Exception e) { @@ -41,4 +54,4 @@ public class JDBCUtils { } } } -} +} \ No newline at end of file diff --git a/javaweb_project/web/acdemic_dean/acdemic/grademanagement/gradeanalysis.jsp b/javaweb_project/web/acdemic_dean/acdemic/grademanagement/gradeanalysis.jsp index 768491c..224bc24 100644 --- a/javaweb_project/web/acdemic_dean/acdemic/grademanagement/gradeanalysis.jsp +++ b/javaweb_project/web/acdemic_dean/acdemic/grademanagement/gradeanalysis.jsp @@ -2,136 +2,165 @@ <%@page import="com.hua.entity.StudentBasicInformation"%> <%@page import="java.util.Map"%> <%@ page language="java" contentType="text/html; charset=UTF-8" - pageEncoding="UTF-8"%> + pageEncoding="UTF-8"%> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> - -教务管理系统 + + + 教务管理系统 -
- <%session.setAttribute("path", request.getRequestURI()); %> - 修改密码 - 注销 -

- 返回上一步 -
-

学生成绩统计分析

-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
学年学期: - -
学院: - -
专业: - -
班级: - -
学号:
学生姓名:
- -
- + +
+ + <%session.setAttribute("path", request.getRequestURI()); %> + + 修改密码 + + 注销 +

+ + 返回上一步 +
+ +

学生成绩统计分析

+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
学年学期: + + +
学院: + + +
专业: + + +
班级: + + +
学号:
学生姓名:
+
+ + + - - - - - - - - - - - - - - <% - Map results = + + + + + + + + + + + + + + + + <% + Map results = (Map)session.getAttribute("results"); - session.removeAttribute("results"); - %> - <% - for(Map.Entry entry : results.entrySet()){ - StudentBasicInformation stu = entry.getKey(); - GradeAnalysisResult gradeAnalysisResult = entry.getValue(); - - - %> - - - - - - - - - - - - - - - - <% - - } - %> -
学号学生姓名学院专业班级课程门数平均分总分平均学分成绩平均学分绩点绩点排名
学号学生姓名学院专业班级课程门数平均分总分平均学分成绩平均学分绩点绩点排名
<%= stu.getStudentId()%><%= stu.getStudentName()%><%= stu.getAcademy()%><%= stu.getProfession()%><%= stu.getClassName()%><%= gradeAnalysisResult.getCourseCount()%><%= gradeAnalysisResult.getAverScore()%><%= gradeAnalysisResult.getScore() %><%= gradeAnalysisResult.getAverCreditGrade() %><%= gradeAnalysisResult.getGradePoint() %>
-
+ session.removeAttribute("results"); + %> + + <% + for(Map.Entry entry : results.entrySet()){ + StudentBasicInformation stu = entry.getKey(); + GradeAnalysisResult gradeAnalysisResult = entry.getValue(); + %> + + + <%= stu.getStudentId()%> + + <%= stu.getStudentName()%> + + <%= stu.getAcademy()%> + + <%= stu.getProfession()%> + + <%= stu.getClassName()%> + + <%= gradeAnalysisResult.getCourseCount()%> + + <%= gradeAnalysisResult.getAverScore()%> + + <%= gradeAnalysisResult.getScore() %> + + <%= gradeAnalysisResult.getAverCreditGrade() %> + + <%= gradeAnalysisResult.getGradePoint() %> + + + + <% + } + %> + +
\ No newline at end of file diff --git a/javaweb_project/web/acdemic_dean/acdemic/grademanagement/gradequery.jsp b/javaweb_project/web/acdemic_dean/acdemic/grademanagement/gradequery.jsp index 57ddccf..747b0b4 100644 --- a/javaweb_project/web/acdemic_dean/acdemic/grademanagement/gradequery.jsp +++ b/javaweb_project/web/acdemic_dean/acdemic/grademanagement/gradequery.jsp @@ -3,149 +3,187 @@ <%@page import="com.hua.entity.StudentGrade"%> <%@page import="java.util.List"%> <%@ page language="java" contentType="text/html; charset=UTF-8" - pageEncoding="UTF-8"%> + pageEncoding="UTF-8"%> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> - -教务管理系统 + + + 教务管理系统 -
- <%session.setAttribute("path", request.getRequestURI()); %> - 修改密码 - 注销 -

- 返回上一步 -
-

学生成绩

-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
学年学期: - -
学院: - -
专业: - -
班级: - -
学号:
学生姓名:
- -
- + +
+ + <%session.setAttribute("path", request.getRequestURI()); %> + + 修改密码 + + 注销

- - + + 返回上一步 +
+ +

学生成绩

+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
学年学期: + + +
学院: + + +
专业: + + +
班级: + + +
学号:
学生姓名:
+
+ +

+ + + - - - - - - - - - - - - - - - - - - - - <% - Map> map = - (Map>)session.getAttribute("map"); - session.removeAttribute("map"); - %> - <% - for(Map.Entry> entry : map.entrySet()){ - StudentBasicInformation stu = entry.getKey(); - List studentGrades = entry.getValue(); - for(StudentGrade student : studentGrades){ - - %> - - - - - - - - - - - - - - - - - - - - <% - } + + + + + + + + + + + + + + + + + + + + + + <% + Map> map = + (Map>)session.getAttribute("map"); + session.removeAttribute("map"); + %> + + <% + for(Map.Entry> entry : map.entrySet()){ + StudentBasicInformation stu = entry.getKey(); + List studentGrades = entry.getValue(); + for(StudentGrade student : studentGrades){ + %> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + <% } - %> -
学年学期学号学生姓名学院专业班级课程编号课程名称成绩绩点学分课程大类修读方式考试性质成绩方式有效备注
<%= student.getYearTerm()%><%= student.getStudentId()%><%= student.getStudentName()%><%= stu.getAcademy()%><%= stu.getProfession()%><%= stu.getClassName()%><%= student.getCourseId()%><%= student.getCourseName()%><%= student.getScore() %><%= student.getGradePoint() %><%= student.getCredit() %><%= student.getCourseClass() %><%= student.getStudyWay() %><%= student.getExamWay() %><%= student.getGradeWay() %><%= student.getEffectivity() %><%= student.getRemarks() %>
学年学期学号学生姓名学院专业班级课程编号课程名称成绩绩点学分课程大类修读方式考试性质成绩方式有效备注
<%= student.getYearTerm()%><%= student.getStudentId()%><%= student.getStudentName()%><%= stu.getAcademy()%><%= stu.getProfession()%><%= stu.getClassName()%><%= student.getCourseId()%><%= student.getCourseName()%><%= student.getScore() %><%= student.getGradePoint() %><%= student.getCredit() %><%= student.getCourseClass() %><%= student.getStudyWay() %><%= student.getExamWay() %><%= student.getGradeWay() %><%= student.getEffectivity() %><%= student.getRemarks() %>
-
+ } + %> + + \ No newline at end of file