JSP访问数据库之模糊查询

<% try {
String str1=request.getParameter("name");
........................................

String sql="select * from t1 where name like '%"+str1+"%'";
ResultSet rs=stmt1.executeQuery(sql);
%>

"); out.print(""); out.print(""); %>
姓名性别年龄
"+rs.getString("name")+""+rs.getString("sex")+""+rs.getString("age")+"

<%
}
else{out.print("该数据不存在");}
conn.close();
} catch(Exception e) {}
%>
代码就是这样的,当输入某个关键字进行查询时,其实在数据库里有好几个记录都有这个关键字,可是呈现出来的却只有一个记录,就是在表中排在第一的那个记录。其他记录都不能呈现出来。请问如何解决这个问题?

你可以通过获得先获得 结果条目数 然后判断是否有有数据。

最后在做出相应的输出处理。

判断数据的条目:

方法一:默认的 ResultSet 对象不可更新,仅有一个向前移动的游标。你可以在Statement构造时,声明ResultSet对象的游标可以前后移动。

通过移动游标,获取ResultSet的条目数。

方法二:执行一个相同SQL的SUM操作,获取数据的条目。

因为你用的是if不是while来处理 数据库返回的结果

[code="java"]<%
if(rs.next()) {
out.print("

"+rs.getString("name")+"");
out.print(""+rs.getString("sex")+"");
out.print(""+rs.getString("age")+"");
%>
[/code]
[color=red]
[b]
改为:[/b][/color]
[code="java"]<%
while(rs.next()) {
out.print(""+rs.getString("name")+"");
out.print(""+rs.getString("sex")+"");
out.print(""+rs.getString("age")+"");
%> [/code]

把if() 改成while就行了

while 才是循环,if只是一个判断。