11.26
四、核心功能开发(按模块逐步实现)
模块 1:数据库工具类(util 层,确保数据库连接)
创建com.student.daily.util.DBUtil.java,封装数据库连接与关闭操作,避免重复代码:
java
运行
package com.student.daily.util;
import java.sql.*;
/**
-
数据库工具类
-
班级:2023级XX班
-
作者:XXX
-
学号:2023XXXX
-
日期:2024-12-27
*/
public class DBUtil {
// 数据库连接信息(需替换为自己的MySQL用户名和密码)
private static final String URL = "jdbc:mysql://localhost:3306/daily_summary_db?useSSL=false&serverTimezone=UTC";
private static final String USER = "root";
private static final String PASSWORD = "你的MySQL密码";// 加载驱动(静态代码块,仅执行一次)
static {
try {
Class.forName("com.mysql.cj.jdbc.Driver");
} catch (ClassNotFoundException e) {
e.printStackTrace();
throw new RuntimeException("MySQL驱动加载失败!");
}
}// 获取数据库连接
public static Connection getConnection() {
try {
return DriverManager.getConnection(URL, USER, PASSWORD);
} catch (SQLException e) {
e.printStackTrace();
throw new RuntimeException("数据库连接失败!");
}
}// 关闭资源(ResultSet、PreparedStatement、Connection)
public static void close(ResultSet rs, PreparedStatement pstmt, Connection conn) {
try {
if (rs != null) rs.close();
if (pstmt != null) pstmt.close();
if (conn != null) conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
模块 2:实体类(entity 层,映射数据库表)
以User(人员信息)和DailyReport(日报信息)为例,创建实体类(使用 lombok 可简化 getter/setter,若未使用则手动编写):
- User.java
java
运行
package com.student.daily.entity;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
- 人员实体类(对应t_user表)
- 班级:2023级XX班
- 作者:XXX
- 学号:2023XXXX
- 日期:2024-12-27
*/
@Data // 自动生成getter、setter、toString等方法
@NoArgsConstructor // 无参构造
@AllArgsConstructor // 全参构造
public class User {
private String userId; // 人员ID(学号/工号)
private String userName; // 姓名
private Integer userCategory;// 人员类别(0学生/1小组长/2教师)
private Integer groupNo; // 组号
}
- DailyReport.java
java
运行
package com.student.daily.entity;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
- 日报实体类(对应t_daily_report表)
- 班级:2023级XX班
- 作者:XXX
- 学号:2023XXXX
- 日期:2024-12-27
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
public class DailyReport {
private Integer id; // 日报编号
private String publishdate; // 发表时间(20241227)
private String stuno; // 学号
private String name; // 姓名
private Integer spenttime; // 所花时间(小时)
private Integer codeamount; // 代码量(行)
private Integer blogsnumber; // 博客量(篇)
private String knowledgepoints; // 知识点
private String state; // 状态(待审批/通过/评分/退回)
private Integer dailyscore; // 评分
private String statereason; // 评语
}

浙公网安备 33010602011771号