问题:
我正在从数据库中检索值,它将与主管和审查员的 Intent intent= getIntent();
String message = intent.getStringExtra("com.example.owner.MESSAGE");
匹配。但是,如果这两者之间没有availabilityID
匹配,则availabilityID
默认为0。
我在我的servlet中创建了一个条件,如果availabilityID
都为0,我想用我的查询选择的任何数字替换它。
我的servlet的一部分:
availabilityID
我知道我的结果是这样的:
for (int i=0 ; i<studentID.length ; i++){
FreeBean free = new FreeBean();
free = GenerateScheduleDAO.getFree(supervisorID[i],examinerID[i]);
nt SVavailableID = free.getAvailableID();
int EXavailableID = free.getAvailableID();
Date FreeDate = free.getFreeDate();
out.println("<td>"+ studentID[i]+"</td>");
out.println("<td> Hello </td>");
out.println("<td>"+ supervisorID[i] +"</td>");
out.println("<td>"+ examinerID[i] +"</td>");
out.println("<td>"+ SVavailableID+"</td>");
out.println("<td>"+ EXavailableID+"</td>");
out.println("<td>"+ FreeDate+"</td>");
out.println("</tr>");
if (SVavailableID ==0 && EXavailableID ==0 )
{
free= GenerateScheduleDAO.getOtherFree(supervisorID[i],examinerID[i]);
int otherSVavailableID = free.getAvailableID();
int otherEXavailableID = free.getAvailableID();
out.println("<tr>");
out.println("<td>"+ studentID[i]+"</td>");
out.println("<td> Hello </td>");
out.println("<td>"+ supervisorID[i] +"</td>");
out.println("<td>"+ examinerID[i] +"</td>");
out.println("<td>"+ otherSVavailableID+"</td>");
out.println("<td>"+ otherEXavailableID+"</td>");
out.println("<td>"+ FreeDate+"</td>");
out.println("</tr>");
}
}// student loop
第一行显示,主管和审查员的Student Name | Project Title | Supervisor Name | Examiner Name | Presentation 1 | Presentation 2 | Date
abc 1111 tan tin 0 0 1/1/16
abc 1111 tan tin 12 12 1/1/16
都是0.因此,它将执行IF语句并为它们找到另一个可能的availabilityID
。因此,它将复制其中一个由0组成且一个由新值组成的行。
如何使用新值替换0的行。或者至少,使用availabilityID
= 0隐藏行,并仅显示检索到的新值。有没有有效的方法?
答案 0 :(得分:0)
我认为你需要做的就是确保你只执行一个逻辑流程。在正确的位置使用if
语句可以实现这一目标。
for (int i=0; i < studentID.length; i++) {
FreeBean free = new FreeBean();
free = GenerateScheduleDAO.getFree(supervisorID[i],examinerID[i]);
int SVavailableID = free.getAvailableID();
int EXavailableID = free.getAvailableID();
Date FreeDate = free.getFreeDate();
// handle the edge case here
if (SVavailableID == 0 && EXavailableID == 0) {
free = GenerateScheduleDAO.getOtherFree(supervisorID[i],examinerID[i]);
SVavailableID = free.getAvailableID();
EXavailableID = free.getAvailableID();
}
// now print out each record only one time
out.println("<tr>");
out.println("<td>"+ studentID[i]+"</td>");
out.println("<td> Hello </td>");
out.println("<td>"+ supervisorID[i] +"</td>");
out.println("<td>"+ examinerID[i] +"</td>");
out.println("<td>"+ SVavailableID+"</td>");
out.println("<td>"+ EXavailableID+"</td>");
out.println("<td>"+ FreeDate+"</td>");
out.println("</tr>");
}
解决问题的另一种方法是让SQL查询为你处理双零值。