教师可以随时查询授课班级学生的出勤情况。用java和数据库实现
时间: 2024-03-07 11:48:44 浏览: 60
好的,以下是一个使用Java和MySQL数据库实现的简单程序示例,可以查询特定班级在某个时间段内学生的出勤情况:
```java
import java.sql.*;
public class AttendanceQuery {
public static void main(String[] args) {
String url = "jdbc:mysql://localhost:3306/school"; // 数据库连接URL
String username = "root"; // 数据库用户名
String password = "123456"; // 数据库密码
String className = "ClassA"; // 班级名称
String startDate = "2021-09-01"; // 开始日期
String endDate = "2021-09-30"; // 结束日期
Connection conn = null;
Statement stmt = null;
ResultSet rs = null;
try {
// 加载数据库驱动
Class.forName("com.mysql.cj.jdbc.Driver");
// 创建数据库连接
conn = DriverManager.getConnection(url, username, password);
// 创建SQL语句
String sql = "SELECT * FROM attendance WHERE class_name=? AND date BETWEEN ? AND ?";
// 创建PreparedStatement对象
PreparedStatement ps = conn.prepareStatement(sql);
// 设置参数值
ps.setString(1, className);
ps.setString(2, startDate);
ps.setString(3, endDate);
// 执行查询
rs = ps.executeQuery();
// 处理查询结果
while (rs.next()) {
String studentName = rs.getString("student_name");
String date = rs.getString("date");
String status = rs.getString("status");
System.out.println(studentName + " " + date + " " + status);
}
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
} finally {
// 关闭数据库连接
try {
if (rs != null) {
rs.close();
}
if (stmt != null) {
stmt.close();
}
if (conn != null) {
conn.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
```
在上面的代码中,我们使用了Java的JDBC API连接到MySQL数据库,并执行了一条查询语句,查询特定班级在某个时间段内学生的出勤情况。
此外,我们还需要创建一个`attendance`表来存储学生的出勤记录,其SQL语句如下:
```sql
CREATE TABLE attendance (
id INT PRIMARY KEY AUTO_INCREMENT,
class_name VARCHAR(20),
student_name VARCHAR(20),
date DATE,
status VARCHAR(10)
);
```
在实际使用中,我们需要根据具体的情况修改代码和SQL语句。
阅读全文