jsp中模糊查询

<%@ page contentType="text/html;charset=gb2312" %>
<%@ page language="java" import="java.sql.*"%>
<jsp:useBean id="connc" scope="page" class="db.ConnOracle"/>
<%
String sql = "";
String key = "";
String type= "";
String sortfield = "";
%>
<%
request.setCharacterEncoding("gb2312");
sql = "select * from student";
key = request.getParameter("mkey");
System.out.print(key);
type = request.getParameter("mtype");
sortfield = request.getParameter("sortfield");
%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">

 <title>test db connection</title>
</head>
<body bgcolor="#FFFFFF">
<div align="center">
<form action="d_sql2.jsp" method="post">
    查询关键字:<Input type="text" name="mkey">&nbsp;&nbsp;&nbsp;
 请选择查找操作字段:
 <select name="mtype">
  <option value="studentid">studentid</option>
  <option value="studentname">studentname</option>
  <option value="gender">gender</option>
  <option value="phone">phone</option>
 </select>&nbsp;&nbsp;&nbsp;
 <Input type="submit" value="查看">
</form>
<hr>
  <table width="60%" border="1">
    <tr bgcolor="#CCCCFF">
      <td width="25%">
        <div align="center"><font color="#FF0033"><b>
    <a href="d_sql2.jsp?mkey=<%=key%>&mtype=<%=type%>&studentid">学号</a>
  </b></font></div>
      </td>
      <td width="25%">
        <div align="center"><font color="#FF0033"><b>
    <a href="d_sql2.jsp?mkey=<%=key%>&mtype=<%=type%>&studentname">姓名</a>
  </b></font></div>
      </td>
      <td width="25%">
        <div align="center"><font color="#FF0033"><b>
    <a href="d_sql2.jsp?mkey=<%=key%>&mtype=<%=type%>&sortfield=gender">性别</a>
  </b></font></div>
      </td>
      <td width="25%">
        <div align="center"><font color="#FF0033"><b>
    <a href="d_sql2.jsp?mkey=<%=key%>&m-type=<%=type%>&sortfield=phone">电话</a>
  </b></font></div>
      </td>
    </tr>
<%
if(key != null && !key.equals("") && type != null && !type.equals(""))
    sql += " where " + type + " like '%" + key + "%' ";
if(sortfield != null && !sortfield.equals("")) 
 sql += " order by " + sortfield ;

ResultSet RS_result = connc.executeQuery( sql );
String studentName="";
String studentSex="";
String studentScore="";
String phone="";
while(RS_result.next())
{
studentName = RS_result.getString("studentid");
studentSex = RS_result.getString("studentname");
studentScore = RS_result.getString("gender");
phone=RS_result.getString("phone");
%>
    <tr>
      <td width="25%" bgcolor="#FFFFFF">
        <div align="center"><%=studentName%></div>
      </td>
      <td width="25%">
        <div align="center"><%=studentSex%></div>
      </td>
      <td width="25%">
       <div align="center"><%=studentScore%></div>
      </td>
 <td width="25%">
       <div align="center"><%=phone%></div>
      </td>
    </tr>
<%
}
RS_result.close();
%>
  </table>
</div>
</body>
</html>
值得体会

以下是使用JSP编写模糊查询的示例代码: <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ page import="java.sql.*" %> <%@ page import="javax.naming.Context" %> <%@ page import="javax.naming.InitialContext" %> <%@ page import="javax.naming.NamingException" %> <% String searchStr = request.getParameter("searchStr"); if (searchStr == null) { searchStr = ""; } Context context = new InitialContext(); DataSource dataSource = (DataSource) context.lookup("java:comp/env/jdbc/myDataSource"); Connection connection = dataSource.getConnection(); PreparedStatement preparedStatement = connection.prepareStatement("SELECT * FROM my_table WHERE name LIKE ?"); preparedStatement.setString(1, "%" + searchStr + "%"); ResultSet resultSet = preparedStatement.executeQuery(); %> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>模糊查询</title> </head> <body> <h1>模糊查询</h1> <form action="" method="get"> <label for="searchStr">查询字符串:</label> <input type="text" name="searchStr" value="<%= searchStr %>"> <button type="submit">查询</button> </form> <table> <tr> <th>ID</th> <th>名称</th> <th>数量</th> <th>价格</th> </tr> <% while (resultSet.next()) { %> <tr> <td><%= resultSet.getInt("id") %></td> <td><%= resultSet.getString("name") %></td> <td><%= resultSet.getInt("quantity") %></td> <td><%= resultSet.getDouble("price") %></td> </tr> <% } %> </table> <% resultSet.close(); %> <% preparedStatement.close(); %> <% connection.close(); %> </body> </html> 在这个示例,我们首先从请求参数获取查询字符串。如果请求参数为空,则将查询字符串设置为空字符串。 然后,我们使用JNDI查找数据源,并从数据源获取连接。接下来,我们准备一个包含一个占位符的预处理语句,该占位符表示查询字符串。我们使用setString方法将查询字符串设置为占位符的值,并执行查询。 在HTML部分,我们显示一个带有文本框和提交按钮的表单,用户可以在其输入查询字符串。我们还显示一个用于显示查询结果的表格。在使用while循环遍历结果集时,我们使用JSP表达式来显示每个行的值。 最后,我们关闭结果集、预处理语句和连接。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值