向数据库插入打卡数据

import android.util.Log;
import com.example.demo3.entity.Record;
import com.example.demo3.utils.JDBCUtils;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

public class RecordDao {
    private static final String TAG = "mysql-db_timing-RecordDao";

    // 方法:插入每日打卡数据
    public static boolean insertRecord(Record record) {
        Connection connection = JDBCUtils.getConn();
        if (connection != null) {
            try {
                String sql = "INSERT INTO record (studentId, weekNum, startTime, endTime, recording) VALUES (?, ?, ?, ?, ?)";
                PreparedStatement ps = connection.prepareStatement(sql);
                ps.setString(1, record.getStudentId());
                ps.setInt(2, record.getWeekNum());
                ps.setString(3, record.getStartTime());
                ps.setString(4, record.getEndTime());
                ps.setString(5, record.getRecording());
                int rowsAffected = ps.executeUpdate();
                ps.close();
                connection.close();
                return rowsAffected > 0;
            } catch (SQLException e) {
                Log.e(TAG, "每日打卡失败" + e.getMessage());
                e.printStackTrace();
            }
        }
        return false;
    }

    // 方法:根据学生ID和周数查找打卡记录
    public static Record findRecord(String studentId, int weekNum) {
        Connection connection = JDBCUtils.getConn();
        if (connection != null) {
            try {
                String sql = "SELECT * FROM record WHERE studentId = ? AND weekNum = ?";
                PreparedStatement ps = connection.prepareStatement(sql);
                ps.setString(1, studentId);
                ps.setInt(2, weekNum);
                ResultSet resultSet = ps.executeQuery();
                if (resultSet.next()) {
                    Record record = new Record();
                    record.setStudentId(resultSet.getString("studentId"));
                    record.setWeekNum(resultSet.getInt("weekNum"));
                    record.setStartTime(resultSet.getString("startTime"));
                    record.setEndTime(resultSet.getString("endTime"));
                    record.setRecording(resultSet.getString("recording"));
                    resultSet.close();
                    ps.close();
                    connection.close();
                    return record;
                }
            } catch (SQLException e) {
                Log.e(TAG, "Error finding record: " + e.getMessage());
                e.printStackTrace();
            }
        }
        return null;
    }

    // 方法:查询所有打卡记录
    public List<Record> findAllRecords() {
        Connection connection = JDBCUtils.getConn();
        List<Record> records = new ArrayList<>();
        if (connection != null) {
            try {
                String sql = "SELECT * FROM record";
                PreparedStatement ps = connection.prepareStatement(sql);
                ResultSet resultSet = ps.executeQuery();
                while (resultSet.next()) {
                    Record record = new Record();
                    record.setStudentId(resultSet.getString("studentId"));
                    record.setWeekNum(resultSet.getInt("weekNum"));
                    record.setStartTime(resultSet.getString("startTime"));
                    record.setEndTime(resultSet.getString("endTime"));
                    record.setRecording(resultSet.getString("recording"));
                    records.add(record);
                }
                resultSet.close();
                ps.close();
                connection.close();
            } catch (SQLException e) {
                Log.e(TAG, "Error finding all records: " + e.getMessage());
                e.printStackTrace();
            }
        }
        return records;
    }

    // 方法:根据学生ID查询打卡记录
    public List<Record> findRecordsByStudentId(String studentId) {
        Connection connection = JDBCUtils.getConn();
        List<Record> records = new ArrayList<>();
        if (connection != null) {
            try {
                String sql = "SELECT * FROM record WHERE studentId = ?";
                PreparedStatement ps = connection.prepareStatement(sql);
                ps.setString(1, studentId);
                ResultSet resultSet = ps.executeQuery();
                while (resultSet.next()) {
                    Record record = new Record();
                    record.setStudentId(resultSet.getString("studentId"));
                    record.setWeekNum(resultSet.getInt("weekNum"));
                    record.setStartTime(resultSet.getString("startTime"));
                    record.setEndTime(resultSet.getString("endTime"));
                    record.setRecording(resultSet.getString("recording"));
                    records.add(record);
                }
                resultSet.close();
                ps.close();
                connection.close();
            } catch (SQLException e) {
                Log.e(TAG, "Error finding records by student ID: " + e.getMessage());
                e.printStackTrace();
            }
        }
        return records;
    }

    // 方法:根据周数查询打卡记录
    public List<Record> findRecordsByWeekNum(int weekNum) {
        Connection connection = JDBCUtils.getConn();
        List<Record> records = new ArrayList<>();
        if (connection != null) {
            try {
                String sql = "SELECT * FROM record WHERE weekNum = ?";
                PreparedStatement ps = connection.prepareStatement(sql);
                ps.setInt(1, weekNum);
                ResultSet resultSet = ps.executeQuery();
                while (resultSet.next()) {
                    Record record = new Record();
                    record.setStudentId(resultSet.getString("studentId"));
                    record.setWeekNum(resultSet.getInt("weekNum"));
                    record.setStartTime(resultSet.getString("startTime"));
                    record.setEndTime(resultSet.getString("endTime"));
                    record.setRecording(resultSet.getString("recording"));
                    records.add(record);
                }
                resultSet.close();
                ps.close();
                connection.close();
            } catch (SQLException e) {
                Log.e(TAG, "Error finding records by week number: " + e.getMessage());
                e.printStackTrace();
            }
        }
        return records;
    }

}

 

posted @ 2024-03-31 21:43  艾鑫4646  阅读(17)  评论(0编辑  收藏  举报