我试图获取有关员工的信息。来自oracle数据库。
在JSP中,数据库连接很好,我也确认了我的数据库中的实体。
但是,当我试图在网上看到时,rs2.next()为空。
我关闭了conn.close();在查询之前。
String sql = "select *from member where id like '%" + id
+ "%' and pwd like '%" + pwd + "%'";
stmt = conn.createStatement();
rs = stmt.executeQuery(sql);
(Shows members info)
String sql2 = "SELECT * FROM commute";
(Shows working statments)
Connection conn2;
Statement stmt2;
ResultSet rs2;
rs2 = stmt2.executeQuery(sql2);
%>
<br>
<h2>1. Payment Info</h2>
<table border="1" cellspacing="0">
<tr>
<td>ID</td>
<td>Start to work</td>
<td>End of work</td>
<td>Date</td>
<td>Working hour</td>
</tr>
<%
while(rs2.next()){
%>
<tr>
<td></td>
<td><%=rs2.getString(1)%></td>
<td><%=rs2.getString(2)%></td>
<td><%=rs2.getString(3)%></td>
<td><%=rs2.getString(4)%></td>
<td><%="DEFAULT" %></td>
</tr>
...
答案 0 :(得分:0)
我个人不是scriptlets的粉丝。在这种情况下,它违反了单一责任原则。我以前写过这样的东西,我更喜欢在后端做所有数据库的东西,让JSP做东西,比如显示数据。
我会从DAO中的数据库中获取数据,将其放入模型中(假设您有一个MVC架构),然后让JSTL遍历它并显示数据。
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<table id="results">
<c:forEach var="item" items="${resultSet}">
<tr class="even">
<td id="result"><c:out value="${item.x}" /></td>
<td id="result"><c:out value="${item.y}" /></td>
<td id="result"><c:out value="${item.z}" /></td>
</tr>
</c:forEach>
</table>
希望有道理!