【发布时间】:2016-11-15 03:58:53
【问题描述】:
我在显示我的数据库内容时遇到了问题,我遇到了这个错误:
org.apache.jasper.JasperException: java.lang.IndexOutOfBoundsException: Index: 2, Size: 2
有人可以帮我解决这个问题吗?我有另一个在我的 JSP 页面中有效的查询,但这个特定的查询似乎有例外:
select epi.firstName, epi.lastName, esi.license
from `employee-personal-information` epi
join`employee-safeguard-information` esi
on epi.employeeID = esi.employeeID
join oic oic
on esi.employeeID = oic.oicID;
这是我的 DAO 代码:
public ArrayList<Employee> viewOIC() {
ArrayList<Employee> newEmployee = new ArrayList<Employee>();
try {
DBConnectionFactory myFactory = DBConnectionFactory.getInstance();
Connection conn = myFactory.getConnection();
PreparedStatement pstmt = conn.prepareStatement("select epi.firstName, epi.lastName, esi.license\n" + "from `employee-personal-information` epi join`employee-safeguard-information` esi on epi.employeeID = esi.employeeID\n" + " join oic oic on esi.employeeID = oic.oicID\n" + ";");
ResultSet rs = pstmt.executeQuery();
while (rs.next()) {
Employee tempRI = new Employee();
tempRI.setFirstName(rs.getString("firstName"));
tempRI.setLastName(rs.getString("lastName"));
tempRI.setLicense(rs.getString("license"));
newEmployee.add(tempRI);
}
pstmt.close();
conn.close();
return newEmployee;
} catch (SQLException ex) {
Logger.getLogger(EmployeeDAO.class.getName()).log(Level.SEVERE, null, ex);
}
return null;
}
请帮我解决这个问题。任何帮助,将不胜感激!谢谢!
我的 JSP 代码:
<% EmployeeDAO employeeDAO = new EmployeeDAO();
ArrayList<Employee> employeeList = employeeDAO.viewEmployee();%>
<div class="form-bottom">
<form action="addTicket" method="post" class="complaint-form">
<div class="form-group">
Involved Guard:
<select name="form-guardInvolved" id="form-guardInvolved" onfocus="emptyElement('status')">
<% for (int i = 0; i < employeeList.size(); i++) {%>
<option value="<%=employeeDAO.viewEmployee().get(i).getFirstName() + " "%>
<%=employeeDAO.viewEmployee().get(i).getLastName()%>"> <%=employeeDAO.viewEmployee().get(i).getFirstName() + " "%>
<%=employeeDAO.viewEmployee().get(i).getLastName()%> </option>
<% }%>
</select>
<p> </p>
</div>
<div class="form-group">
Reported By:
<select name="form-reportedBy" id="form-reportedBy" onfocus="emptyElement('status')">
<% for (int i = 0; i < employeeList.size(); i++) {%>
<option value="<%=employeeDAO.viewOIC().get(i).getFirstName() + " "%>
<%=employeeDAO.viewOIC().get(i).getLastName()%>"> <%=employeeDAO.viewOIC().get(i).getFirstName() + " "%>
<%=employeeDAO.viewOIC().get(i).getLastName()%> </option>
<% }%>
</select>
<p> </p>
</div>
第一部分有效,但错误在第二部分。
【问题讨论】:
-
请包含异常堆栈跟踪。
-
我看不出在发布的代码中可能会引发 IOOB 异常。
-
我觉得问题很可能发生在调用 viewOIC() 的类中。您可能还想添加该代码。
-
Mark Rotteveel - 我已经发布了堆栈跟踪 Jeutnarg - 你是什么意思?我的 JSP 代码?
标签: java mysql jsp indexoutofboundsexception dao