siwei115
2010-03-08 10:50
浏览 546
已采纳

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) {}
%>
代码就是这样的,当输入某个关键字进行查询时,其实在数据库里有好几个记录都有这个关键字,可是呈现出来的却只有一个记录,就是在表中排在第一的那个记录。其他记录都不能呈现出来。请问如何解决这个问题?

  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

4条回答 默认 最新

  • 拽拽的初行者 2010-03-08 12:47
    已采纳

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

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

    判断数据的条目:

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

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

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

    打赏 评论
  • 拽拽的初行者 2010-03-08 11:10

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

    打赏 评论
  • 拽拽的初行者 2010-03-08 11:11

    [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]
    打赏 评论
  • angellovekun 2010-03-08 12:07

    把if() 改成while就行了

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

    打赏 评论

相关推荐 更多相似问题