Skip to content
Open
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
题目的增删改查complate
添加新角色 管理员 complate
  • Loading branch information
raymond531 committed Jan 11, 2022
commit 4a41f8a9e1ad264db3396f9a5e29fa2353950e2f
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ public class BlankQuestionSearchAction extends ActionSupport{
private int totalPage;
private int pageIndex;
private static final int PAGE_SIZE = 10;

public int[] blankChecked;
@Resource
private BankQuestionDao bankQuestionDao;

Expand Down Expand Up @@ -82,4 +82,12 @@ public String executeForSearch(){//搜索后结果
questionList = bankQuestionDao.findBlankForSearch(contentSearch,answerSearch,knowledgeSearch);
return SUCCESS;
}

public String deleteQuestion(){
for (int cid:blankChecked){
logger.info("删除id为"+cid+"的填空题");
bankQuestionDao.delete(bankQuestionDao.findBlankFillingById(cid));
}
return SUCCESS;
}
}
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package cn.lynu.lyq.java_exam.actions;

import java.util.Arrays;
import java.util.List;

import javax.annotation.Resource;
Expand Down Expand Up @@ -64,6 +65,8 @@ public void setAnswerSearch2(String answerSearch2) {
logger.debug("setting answerSearch2========================"+answerSearch2);
this.answerSearch2 = answerSearch2;
}

public int[] choiceChecked;

public String getKnowledgeSearch() {
return knowledgeSearch;
Expand Down Expand Up @@ -126,5 +129,13 @@ public String executeForSearch(){//搜索后结果
return SUCCESS;
}

public String deleteQuestion(){
// bankQuestionDao.delete(bankQuestionDao.findJudgeById(1))
for (int cid:choiceChecked){
logger.info("删除id为"+cid+"的选择题");
bankQuestionDao.delete(bankQuestionDao.findChoiceById(cid));
}
return SUCCESS;
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ public class JudgeQuestionSearchAction extends ActionSupport{
private static final int PAGE_SIZE = 10;
@Resource
private BankQuestionDao bankQuestionDao;

public int[] judgeChecked;
public String getContentSearch() {
return contentSearch;
}
Expand Down Expand Up @@ -82,4 +82,12 @@ public String executeForSearch(){//搜索后结果
questionList = bankQuestionDao.findJudgeForSearch(contentSearch,answerSearch,knowledgeSearch);
return SUCCESS;
}

public String deleteQuestion(){
for (int cid:judgeChecked){
logger.info("删除id为"+cid+"的判断题");
bankQuestionDao.delete(bankQuestionDao.findJudgeById(cid));
}
return SUCCESS;
}
}
48 changes: 48 additions & 0 deletions src/main/java/cn/lynu/lyq/java_exam/actions/UserListAction.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
package cn.lynu.lyq.java_exam.actions;

import cn.lynu.lyq.java_exam.dao.StudentDao;
import cn.lynu.lyq.java_exam.entity.Student;
import com.opensymphony.xwork2.ActionSupport;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Component;

import javax.annotation.Resource;
import java.util.List;

@Component("userList")
@Scope("prototype")
public class UserListAction extends ActionSupport {
private static final int PAGE_SIZE = 10;
public int pageIndex;
private int totalPage;
public int studentId;
private final static Logger logger = LoggerFactory.getLogger(BlankQuestionSearchAction.class);
public int getTotalPage() {
return totalPage;
}

public void setTotalPage(int totalPage) {
this.totalPage = totalPage;
}

public List<Student> studentList;
@Resource
private StudentDao studentDao;

@Override
public String execute() throws Exception {
int totalCnt = studentDao.countAllStudent();
totalPage = (totalCnt % PAGE_SIZE > 0) ? (totalCnt / PAGE_SIZE + 1) : (totalCnt / PAGE_SIZE);
studentList = studentDao.findStudentWithPage(pageIndex, PAGE_SIZE);
return SUCCESS;
}
public String delUser() throws Exception {
studentList = studentDao.findStudentWithPage(1, PAGE_SIZE);
studentDao.delete(studentDao.findById(studentId));
// studentDao.deleteById(studentId);
logger.info("删除用户");
return SUCCESS;
}
}
31 changes: 10 additions & 21 deletions src/main/java/cn/lynu/lyq/java_exam/actions/UserRegisterAction.java
Original file line number Diff line number Diff line change
Expand Up @@ -5,14 +5,12 @@
import cn.lynu.lyq.java_exam.entity.Grade;
import cn.lynu.lyq.java_exam.entity.Student;
import com.opensymphony.xwork2.ActionSupport;
import com.sun.org.apache.xpath.internal.operations.Bool;
import org.slf4j.LoggerFactory;
import org.slf4j.Logger;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Component;

import javax.annotation.Resource;
import javax.print.DocFlavor;
import java.util.List;

@Component("userRegister")
Expand All @@ -22,38 +20,29 @@ public class UserRegisterAction extends ActionSupport {
public String Password;
public Boolean Sex;
public String name;
public List<Grade> gradeList;
public int role;
public void setSex(String value){
this.Sex = Boolean.parseBoolean(value);
}
// public String getRegisterNo(){
// return RegisterNo;
// }
// public String getPassword(){
// return Password;
// }
// public void setRegisterNo(String value){
// this.RegisterNo = value;
// }
// public void setPassword(String value){
// this.Password = value;
// }
private final static Logger logger = LoggerFactory.getLogger(UserRegisterAction.class);
@Resource
private StudentDao studentDao;

@Resource
private GradeDao gradeDao;

@Override
public String execute() throws Exception {
// this.studentDao.save(new Student());
logger.info(name);
logger.info(Password);
logger.info(RegisterNo);
List<Grade> gradeList=gradeDao.findAll();
gradeList = gradeDao.findAll();
Grade grade = gradeList.get(0);
studentDao.save(new Student(name, RegisterNo, Sex, Password, role, grade));
logger.info("新用户注册");
this.addActionMessage("用户注册成功,请点击登录");
return SUCCESS;
}

public String registerPage() throws Exception {
gradeList = gradeDao.findAll();
return SUCCESS;
}
}
}
14 changes: 14 additions & 0 deletions src/main/java/cn/lynu/lyq/java_exam/dao/CourseDao.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
package cn.lynu.lyq.java_exam.dao;

import cn.lynu.lyq.java_exam.entity.Course;

import java.util.List;

public interface CourseDao {
Course findById(int id);
List<Course> findAll();
List<Course> findByName(String name);
void save(Course c);
void update(Course c);
void delete(Course c);
}
3 changes: 3 additions & 0 deletions src/main/java/cn/lynu/lyq/java_exam/dao/StudentDao.java
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,9 @@ public interface StudentDao {
void save(Student s);
void update(Student s);
void delete(Student s);
void deleteById(int id);
int countAllStudent();
List<Student> findStudentWithPage(int pageIndex, int pageSize);

int importFromTxt(File file);

Expand Down
67 changes: 67 additions & 0 deletions src/main/java/cn/lynu/lyq/java_exam/dao/impl/CourseDaoImpl.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
package cn.lynu.lyq.java_exam.dao.impl;

import cn.lynu.lyq.java_exam.dao.CourseDao;
import cn.lynu.lyq.java_exam.entity.Course;
import org.hibernate.Query;
import org.hibernate.SessionFactory;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;

import javax.annotation.Resource;
import java.util.List;

@Component("CourseDao")
@Transactional
public class CourseDaoImpl implements CourseDao {

private final static Logger logger = LoggerFactory.getLogger(CourseDaoImpl.class);
@Resource
private SessionFactory sessionFactory;

public void setSessionFactory(SessionFactory sessionFactory) {
this.sessionFactory = sessionFactory;
}

@Override
@Transactional(propagation = Propagation.NOT_SUPPORTED, readOnly = true)
public Course findById(int id) {
return sessionFactory.getCurrentSession().get(Course.class, id);
}

@SuppressWarnings("unchecked")
@Override
@Transactional(propagation = Propagation.NOT_SUPPORTED, readOnly = true)
public List<Course> findAll() {
Query q=sessionFactory.getCurrentSession().createQuery("from Course");
return q.list();
}


@SuppressWarnings("unchecked")
@Override
@Transactional(propagation = Propagation.NOT_SUPPORTED, readOnly = true)
public List<Course> findByName(String name) {
logger.debug("name="+name);
Query q=sessionFactory.getCurrentSession().createQuery("from Course where name=?0");
q.setString("0", name);
return q.list();
}

@Override
public void save(Course c) {
sessionFactory.getCurrentSession().save(c);
}

@Override
public void update(Course c) {
sessionFactory.getCurrentSession().update(c);
}

@Override
public void delete(Course c) {
sessionFactory.getCurrentSession().delete(c);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,6 @@

@Component("gradeDao")
@Transactional

public class GradeDaoImpl implements GradeDao {
private final static Logger logger = LoggerFactory.getLogger(GradeDaoImpl.class);
@Resource
Expand All @@ -30,8 +29,7 @@ public void setSessionFactory(SessionFactory sessionFactory) {
@Override
@Transactional(propagation=Propagation.NOT_SUPPORTED,readOnly=true)
public Grade findById(int id) {
Grade g = sessionFactory.getCurrentSession().get(Grade.class, id);
return g;
return sessionFactory.getCurrentSession().get(Grade.class, id);
}

@SuppressWarnings("unchecked")
Expand Down
26 changes: 26 additions & 0 deletions src/main/java/cn/lynu/lyq/java_exam/dao/impl/StudentDaoImpl.java
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@

import javax.annotation.Resource;

import cn.lynu.lyq.java_exam.entity.BankBlankFillingQuestion;
import org.hibernate.Query;
import org.hibernate.SessionFactory;
import org.slf4j.Logger;
Expand Down Expand Up @@ -121,6 +122,31 @@ public void delete(Student s){
sessionFactory.getCurrentSession().delete(s);
}

@Override
public void deleteById(int id){
Query q = sessionFactory.getCurrentSession().createQuery("DELETE FROM Student WHERE id = ?0");
q.setParameter("0", String.valueOf(id));
q.executeUpdate();

}

@Override
public int countAllStudent(){
Object obj = sessionFactory.getCurrentSession().createQuery("select count(*) from Student where role != 2").uniqueResult();
return ((Number)obj).intValue();
}

@Override
public List<Student> findStudentWithPage(int pageIndex, int pageSize){
Query q=sessionFactory.getCurrentSession().createQuery("from Student where role != 2");
int firstResult = pageIndex*pageSize;
q.setFirstResult(firstResult);
q.setMaxResults(pageSize);
@SuppressWarnings("unchecked")
List<Student> list=(List<Student>)q.list();
return list;
}

@Override
@Transactional(propagation=Propagation.NOT_SUPPORTED)
public int importFromTxt(File file) {
Expand Down
39 changes: 39 additions & 0 deletions src/main/java/cn/lynu/lyq/java_exam/entity/Course.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
package cn.lynu.lyq.java_exam.entity;

import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;

@Entity
public class Course {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private int id;
private String name;


public Course(String name){
this.name = name;
}

public Course() {

}

public void setName(String name) {
this.name = name;
}

public String getName() {
return name;
}

public int getId() {
return id;
}

public void setId(int id) {
this.id = id;
}
}
2 changes: 1 addition & 1 deletion src/main/java/cn/lynu/lyq/java_exam/entity/Student.java
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ public class Student {
private String name;
private boolean gender;
private String password;
@ManyToOne(cascade=CascadeType.ALL)
@ManyToOne(cascade=CascadeType.DETACH)
@JoinColumn(name="grade_id")
private Grade grade;
private int role; //权限 role=0表示学生, role=1表示“教师或管理员”
Expand Down
1 change: 1 addition & 0 deletions src/main/java/cn/lynu/lyq/java_exam/filters/JspFilter.java
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,7 @@ public void doFilter(ServletRequest request, ServletResponse response, FilterCha
&& url.endsWith("test.jsp")==false //测试用
&& url.endsWith("userChangePassword.jsp")==false
&& url.endsWith("register.jsp") == false
&& url.endsWith("userList.jsp") == false
) { // 这里可以排除掉一些特殊的允许直接地址栏(或重定向)访问的jsp
httpServletRequest.getRequestDispatcher("/main.jsp").forward(request, response);
return;
Expand Down
Loading