From 21de694cbe667e4038e7abf7127257a6141f162f Mon Sep 17 00:00:00 2001 From: LYH <2275734158@qq.com> Date: Sat, 14 Dec 2024 23:11:49 +0800 Subject: [PATCH] 1 --- .../src/com/hua/jdbcutil/JDBCUtils.java | 45 ++- .../acdemic/grademanagement/gradeanalysis.jsp | 275 +++++++++------- .../acdemic/grademanagement/gradequery.jsp | 308 ++++++++++-------- 3 files changed, 354 insertions(+), 274 deletions(-) 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" %>
- -| 学号 | -学生姓名 | -学院 | -专业 | -班级 | -课程门数 | -平均分 | -总分 | -平均学分成绩 | -平均学分绩点 | -绩点排名 | -
|---|---|---|---|---|---|---|---|---|---|---|
| 学号 | +学生姓名 | +学院 | +专业 | +班级 | +课程门数 | +平均分 | +总分 | +平均学分成绩 | +平均学分绩点 | +绩点排名 | +
| <%= stu.getStudentId()%> | -<%= stu.getStudentName()%> | -<%= stu.getAcademy()%> | -<%= stu.getProfession()%> | -<%= stu.getClassName()%> | -<%= gradeAnalysisResult.getCourseCount()%> | -<%= gradeAnalysisResult.getAverScore()%> | -<%= gradeAnalysisResult.getScore() %> | -<%= gradeAnalysisResult.getAverCreditGrade() %> | -<%= gradeAnalysisResult.getGradePoint() %> | -- - |
| 学年学期 | -学号 | -学生姓名 | -学院 | -专业 | -班级 | -课程编号 | -课程名称 | -成绩 | -绩点 | -学分 | -课程大类 | -修读方式 | -考试性质 | -成绩方式 | -有效 | -备注 | -
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| <%= 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() %> | +