jsp数据库查询

时间:2014-06-04 10:33:11

标签: java sql oracle jsp

我试图获取有关员工的信息。来自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>
    
    ...
    

1 个答案:

答案 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>

希望有道理!