请帮我写一个query2.jsp页面,用于局域网内的浏览器访问mysql数据库,输入查询条件,并将查询结果显示在浏览器中(代码也在query2.jsp中)。数据库名称mysql,表名称table1,IP 192.168.5.100,密码mypassword,端口号默认。表table1中含有如下字段SN,modelCode,lotNum,sterDate,productModel,分别对应界面上的“序列号,型号代码,批号,灭菌日期,产品型号。具体需求如下:当从局域网内的浏览器打开时 (1)允许用户分别输入SN,modelCode,lotNum,sterDate,productModel,根据用户输入的信息(未输入的部分不参与查询),模糊查询符合条件的数据库所有记录,并显示在query2.jsp中的table中。 结果显示时,将数据库的字段名按照下列对应关系展示在query2.jsp。SN对应'序列号',modelCode对应'型号代码',logNum对应'批号',sterDate对应'灭菌日期',productModel对应'产品型号'. 背景:web服务器为tomcat;使用jdbc数据连接,不要使用Class.forName方法,而要使用DriverManager.getConnection方法。不要使用其他的标签库或者框架,使用标准的、原始代码即可。
时间: 2024-02-28 15:56:05 浏览: 66
以下是query2.jsp的代码:
```jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ page import="java.sql.*" %>
<html>
<head>
<title>查询页面</title>
</head>
<body>
<form method="post" action="">
<table>
<tr>
<td>序列号:</td>
<td><input type="text" name="SN"></td>
</tr>
<tr>
<td>型号代码:</td>
<td><input type="text" name="modelCode"></td>
</tr>
<tr>
<td>批号:</td>
<td><input type="text" name="lotNum"></td>
</tr>
<tr>
<td>灭菌日期:</td>
<td><input type="text" name="sterDate"></td>
</tr>
<tr>
<td>产品型号:</td>
<td><input type="text" name="productModel"></td>
</tr>
<tr>
<td colspan="2"><input type="submit" value="查询"></td>
</tr>
</table>
</form>
<%
Connection con = null;
Statement stmt = null;
ResultSet rs = null;
try {
Class.forName("com.mysql.jdbc.Driver");
String url = "jdbc:mysql://192.168.5.100:3306/mysql";
String user = "root";
String password = "mypassword";
con = DriverManager.getConnection(url, user, password);
String sql = "select SN as '序列号', modelCode as '型号代码', lotNum as '批号', sterDate as '灭菌日期', productModel as '产品型号' from table1 where ";
String SN = request.getParameter("SN");
String modelCode = request.getParameter("modelCode");
String lotNum = request.getParameter("lotNum");
String sterDate = request.getParameter("sterDate");
String productModel = request.getParameter("productModel");
if (SN != null && !SN.equals("")) {
sql += "SN like '%" + SN + "%' and ";
}
if (modelCode != null && !modelCode.equals("")) {
sql += "modelCode like '%" + modelCode + "%' and ";
}
if (lotNum != null && !lotNum.equals("")) {
sql += "lotNum like '%" + lotNum + "%' and ";
}
if (sterDate != null && !sterDate.equals("")) {
sql += "sterDate like '%" + sterDate + "%' and ";
}
if (productModel != null && !productModel.equals("")) {
sql += "productModel like '%" + productModel + "%' and ";
}
sql = sql.substring(0, sql.length() - 5);
stmt = con.createStatement();
rs = stmt.executeQuery(sql);
ResultSetMetaData rsmd = rs.getMetaData();
int colCount = rsmd.getColumnCount();
out.print("<table border=1>");
out.print("<tr>");
for (int i = 1; i <= colCount; i++) {
out.print("<td>" + rsmd.getColumnLabel(i) + "</td>");
}
out.print("</tr>");
while (rs.next()) {
out.print("<tr>");
for (int i = 1; i <= colCount; i++) {
out.print("<td>" + rs.getString(i) + "</td>");
}
out.print("</tr>");
}
out.print("</table>");
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (rs != null) {
rs.close();
}
if (stmt != null) {
stmt.close();
}
if (con != null) {
con.close();
}
} catch (Exception e) {
e.printStackTrace();
}
}
%>
</body>
</html>
```
这个页面中,首先是一个表单,用户可以在表单中输入查询条件,点击“查询”按钮后,页面会通过jdbc连接mysql数据库,根据用户输入的条件进行模糊查询,并将查询结果显示在页面上的表格中。查询结果的表格中,数据库的字段名经过对应处理,与界面上的字段名对应。在代码中,使用了JDBC API中的Connection、Statement、ResultSet等类,进行数据库的连接、查询和结果处理。
阅读全文