有两个表,一个是student表,一个是schoolyear。一个是fees表,fees是的一条数据是一个学生某年交费情况。如果已经交费就设fees里面的flag为1.
具体表情况student :id.num,name.password.birthday.classesid.sex.online
schoolyear: id name;
fees:id,flag,schoolyearid.studentid.
向这个类传一个参数班级。和一个年份。
我想实现的功能是这样的,向这个类传一个班级和年份 查询出这个班的所有学生。使这个班所有同学的交费在这个schoolyear年时交清。当循环students时,查询出fees里面有没有满足当前循环的这个学生在某一年的一条数据,如果有则使fees表的flag设为1,如果没有则添加这一条数据。
但是下面的代码只要fees这个表有数据都要执行system.out.println("修改数据数据");也就是查询出来的条件不对。到底是怎么回事,如果这样不行 请问大侠们还有什么办法?这个问题苦恼了我几天了
我用的是hibernate+spring 有spring的 MVC
具体代码如下:
Classes classes = classesService.getClassesById(Integer
.parseInt(request.getParameter("classes").toString()));
Schoolyear schoolyear = schoolyearService.getSchoolyearById(Integer
.parseInt(request.getParameter("schoolyear").toString()));
List<Student> studentlist = classesService.getStudentList(classes);
List<Fees> feeslist = feesService.getFeesList();
if (studentlist != null && !studentlist.isEmpty()) {
if (feeslist != null && !feeslist.isEmpty()) {
for (Student student : studentlist) {
Fees fees = new Fees();
fees.setSchoolyear(schoolyear);
fees.setStudent(student);
Fees fees2 = (Fees) feesService.findByExample(fees);
if (fees2 != null && !fees.equals("")) {
fees2.setFlag(1);
feesService.update(fees2);
System.out.println("修改数据");
} else {
Fees fees1 = new Fees();
fees1.setFlag(1);
fees1.setSchoolyear(schoolyear);
fees1.setStudent(student);
feesService.add(fees1);
System.out.println("没找到相同数据时添加");
}
}
} else {
for (Student student : studentlist) {
Fees fees1 = new Fees();
fees1.setFlag(1);
fees1.setSchoolyear(schoolyear);
fees1.setStudent(student);
feesService.add(fees1);
System.out.println("没有数据时添加");
}
}
}