package com.it.dao;

import com.it.domain.ExamQuestion; import com.it.domain.Result; import com.it.utils.JdbcUtil; import org.springframework.dao.DataAccessException; import org.springframework.jdbc.core.BeanPropertyRowMapper; import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.jdbc.support.GeneratedKeyHolder; import org.springframework.jdbc.support.KeyHolder;

import java.sql.PreparedStatement; import java.sql.Statement; import java.util.List; import java.util.Objects;

/** * */ public class QuestionDao {

private final JdbcTemplate jdbcTemplate = new JdbcTemplate(JdbcUtil.getDataSource());

/*获取问题列表*/
public List<ExamQuestion> getQuestionList(String courseName) {
    String sql;
    List<ExamQuestion> questions;
    if (courseName == null) {
        sql = "select * from question";
        questions = jdbcTemplate.query(sql, new BeanPropertyRowMapper<ExamQuestion>(ExamQuestion.class));
    }else {
        sql = "select * from question where course = ?";
        questions = jdbcTemplate.query(sql, new BeanPropertyRowMapper<ExamQuestion>(ExamQuestion.class), courseName);
    }

    return questions;
}

/*添加问题*/
public ExamQuestion addQuestion(ExamQuestion question) {
    try {
        String sql = "insert into question (course,qname,ans1,ans2,ans3,ans4,answer) values (?,?,?,?,?,?,?)";
        KeyHolder holder = new GeneratedKeyHolder();
        jdbcTemplate.update(connection -> {
            PreparedStatement ps = connection.prepareStatement(sql, Statement.RETURN_GENERATED_KEYS);
            ps.setString(1, question.getCourse());
            ps.setString(2, question.getQuestionName());
            ps.setString(3, question.getOption1());
            ps.setString(4, question.getOption2() );
            ps.setString(5, question.getOption3() );
            ps.setString(6, question.getOption4() );
            ps.setString(7, question.getCorrectAnswer());
            return ps;
        }, holder);
        int id = Objects.requireNonNull(holder.getKey()).intValue();
        question.setQuestionNumber(id);
        return question;
    } catch (DataAccessException e) {
        e.printStackTrace();
    }
    return null;
}

/*查询单个问题*/
public ExamQuestion getSingleQuestion(String qno,String course) {
    try {
        String sql = "select * from question where qno = ? and course = ?";
        ExamQuestion question = jdbcTemplate.queryForObject(sql, new BeanPropertyRowMapper<ExamQuestion>(ExamQuestion.class), qno, course);
        return question;
    } catch (DataAccessException ignored) {

    }
    return null;
}

/*修改问题*/
public int updateQuestion(ExamQuestion one) {
    int i = 0;
    try {
        String sql = "update question set qname = ? ,ans1=? , ans2=? ,ans3=? ,ans4=? , answer = ? where qno = ?";
        i = jdbcTemplate.update(sql, one.getQuestionName(), one.getOption1(), one.getOption2(), one.getOption3(), one.getOption4(), one.getCorrectAnswer(),one.getCorrectAnswer());
    } catch (DataAccessException ignored) {

    }
    return i;
}

/*删除问题*/
public int deleteQuestion(String qno) {
    int i = 0;
    try {
        String sql = "delete from question where qno = ?";
        i = jdbcTemplate.update(sql, qno);
    } catch (DataAccessException ignored) {

    }
    return i;
}

/*查询成绩*/
public List<Result> getResults(String courseName) {
    String sql;
    List<Result> results;
    if (courseName == null) {
        sql = "select * from result";
        results = jdbcTemplate.query(sql, new BeanPropertyRowMapper<Result>(Result.class));
    } else {
        sql = "select * from result where course = ?";
        results = jdbcTemplate.query(sql, new BeanPropertyRowMapper<Result>(Result.class), courseName);
    }
    return results;
}
package comitdao;import comitdomainExamQuestion;import comitdomainResult;import comitutilsjdbcUtil;import orgspringframeworkdaoDataAccessException;import orgspringframeworkjdbccoreBeanPropertyRowMappe

原文地址: http://www.cveoy.top/t/topic/hkL2 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录