gpt4 book ai didi

java - 搜索数据库未按 JSP 中的预期显示

转载 作者:行者123 更新时间:2023-11-30 01:16:15 26 4
gpt4 key购买 nike

摘要: 我使用ajax和JSP实现了一个搜索功能,它运行良好。然后,如果找不到搜索词,我想给出一条消息,例如“未找到记录”。我在代码中添加了一个 if 语句,它似乎可以工作。我后来意识到 if 语句截断了数据库中的一些结果,例如,如果我输入 t (没有 if 语句),它会给我大约 9 条记录,但是使用 if 语句它会给我大约 8 条记录,这事实并非如此。我已经为此工作了很长时间,但我无法解决问题。

为清楚起见,没有 if 语句的屏幕截图

Without the if statement all the records are displayed

包含 if 语句的屏幕截图 With the if statement,less records are being displayed

这是执行搜索并显示它的代码:

<table align="center">
<%@page import="java.sql.*" %>
<%
Connection con;
PreparedStatement ps;
ResultSet rs;
String query;
String se = request.getParameter("se");


try {
Class.forName("com.mysql.jdbc.Driver");
con = DriverManager.getConnection("jdbc:mysql://localhost/alumni", "root", "root");
query = "Select * from users where un like '" + se + "%' or fn like '"+se+"%' or ln like '"+se+"%' ";
ps = con.prepareStatement(query);
rs = ps.executeQuery();

//if statement that seems to be causing the problem.
if(rs.next()){

}else{
out.println("No record found for "+se);
return;
}

int k = 0;
while (rs.next()) {
k++;
%>
<tr>
<td class="go" style="width: 608px;border-radius: 6px; height: 44px;">

<a href= 'profile.jsp?un=<%=rs.getString("un")%>' style="text-decoration: none; ">
<div class="search" >
<!-- image -->
<script>
function imgError(image) {
image.onerror = "";
image.src = "images/avatar.jpg";
return true;
}

</script>

&nbsp;
<% out.println("<img onerror='imgError(this)' width = 65 height = 55 style='border-radius:5px' src=picView?un=" + rs.getString("un") + ">"
+ "</img>");%>
<div style="display: inline;"> &nbsp;<%=rs.getString("un")%> </div>
<div style="display: inline-block;">
&nbsp;<%=rs.getString("fn")%> <%=rs.getString("ln")%> </div>


</div> </a>



</td>

</tr>


<%
}
}
catch (Exception e) {
out.println("Exception "+e);
}









%>

请注意:if语句放在那里是为了通知用户如果没有找到记录并且它很好地执行了它的功能。 我知道我不应该使用 scriptlet,但由于某些原因我使用了它。请耐心等待。 谢谢。

最佳答案

经过一些研究和代码编辑后,我意识到下面放入 try block 的代码可以解决问题。代码如下:

 Class.forName("com.mysql.jdbc.Driver");
con = DriverManager.getConnection("jdbc:mysql://localhost/alumni", "root", "root");
query = "Select * from users where un like '" + se + "%' or fn like '"+se+"%' or ln like '"+se+"%' ";
ps = con.prepareStatement(query);
rs = ps.executeQuery();
if(rs.next())
{

}else{
out.println("No record found for "+se);
return;
}
query = "Select * from users where un like '" + se + "%' or fn like '"+se+"%' or ln like '"+se+"%' ";
ps = con.prepareStatement(query);
rs = ps.executeQuery();

关于java - 搜索数据库未按 JSP 中的预期显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19028619/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com