在javaweb项目里,有2个数据库,数据库stu存储学生的信息,其中主键为stuno,有存储学生所属楼号的字段stubuild,数据库adm存储楼房管理员的信息,其中主键为admno,有存储楼房管理员所管理楼房范围(楼号)的字段admbuild,现要在管理员页面info.jsp调用查询方法查看其管理楼房范围内的学生信息,应如何用代码实现?
时间: 2024-03-23 07:44:08 浏览: 19
首先,需要在Java代码中连接到这两个数据库。可以使用JDBC连接到数据库。
接着,需要在info.jsp页面中编写查询表单,包括一个下拉框选择管理员和一个查询按钮。下拉框的选项可以从adm表中获取。
当用户选择管理员并点击查询按钮时,需要使用Java代码查询出该管理员所管理的楼房范围内的学生信息。具体的查询语句可以使用SQL语句实现。
查询出的学生信息可以以表格形式呈现在info.jsp页面中。
下面是一个简单的示例代码,仅供参考:
在info.jsp页面中:
```html
<form action="query.jsp" method="post">
<label for="admin">管理员:</label>
<select id="admin" name="admin">
<%-- 从adm表中获取管理员选项 --%>
<%
// 假设已经连接到数据库
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("SELECT admno, admbuild FROM adm");
while (rs.next()) {
out.println("<option value=\"" + rs.getString("admno") + "\">" + rs.getString("admbuild") + "</option>");
}
%>
</select>
<button type="submit">查询</button>
</form>
```
在query.jsp页面中:
```java
<%
// 获取管理员参数
String adminNo = request.getParameter("admin");
// 查询学生信息
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("SELECT * FROM stu WHERE stubuild IN (SELECT admbuild FROM adm WHERE admno='" + adminNo + "')");
// 显示查询结果
out.println("<table>");
out.println("<tr><th>学号</th><th>姓名</th><th>楼号</th></tr>");
while (rs.next()) {
out.println("<tr><td>" + rs.getString("stuno") + "</td><td>" + rs.getString("name") + "</td><td>" + rs.getString("stubuild") + "</td></tr>");
}
out.println("</table>");
%>
```
注意:上述代码仅供参考,实际应用中需要根据具体情况进行修改和完善。例如,需要处理数据库连接、异常处理、SQL注入等问题。