t1441332354
t1441332354
采纳率71.8%
2018-05-26 09:32 阅读 1.2k
已采纳

jsp页面查询数据库的问题

10

同样的sql语句在数据库里和jsp页面上的查询结果为什么不一样呢
这是jsp页面

            String sql = "select ItemName from DetectItem where id in (1,2)";
            ResultSet rs = stmt.executeQuery(sql);
            List<DetectItem> list = new ArrayList<DetectItem>();
            if(rs.next()){
                DetectItem dt = new DetectItem();
                dt.setItemName(rs.getString("ItemName"));
                list.add(dt);
                request.setAttribute("list",list);
            }else{
                out.print("未能查询到数据!");
            }
            rs.close();
            stmt.close();
            conn.close();
        }catch(ClassNotFoundException e){
            e.printStackTrace();
        }catch(SQLException e){
            e.printStackTrace();
        }
            List<DetectItem> list = (List<DetectItem>)request.getAttribute("list");
                if(list == null || list.size() < 1){
                    out.print("没有数据!");
                }else{
                    for(DetectItem dt : list){
                        out.print("ItemName:"+dt.getItemName());
                    }
                }
        %>

这是运行结果

图片说明

这是数据库的结果
图片说明

是我的jsp页面代码哪需要修改吗?求详解,谢谢

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享

5条回答 默认 最新

  • 已采纳
    qq_41099505 qq_41099505 2018-05-26 09:54

    jsp中你的那句if(rs.next())使得赋值语句只执行了一次,所以最后显示的结果才只有第一个数据,这句改成while(rs.next())就可以了

    点赞 3 评论 复制链接分享
  • abcxy12336 abcxy12336 2018-05-26 10:18

    if(rs.next())改成while(rs.next())

    点赞 1 评论 复制链接分享
  • qq_32169593 zhenqingshi 2018-05-26 09:43

    jsp再加个for循环来显示目标数据?

    点赞 评论 复制链接分享
  • qq_41968175 qq_41968175 2018-05-26 09:44

    要在JSP页面中实现数据库的查询主要有连接及查询数据库的java代码部分和html页面代码部分。实现这个页面,我们进行一个三步走

    1、写出连接数据库的代码

    2、写出用于显示页面的代码

    3、将连接数据库的代码插入到页面代码的恰当位置。

    1. 连接数据库的代码

    1.1 导入sql包

    <% import="java.sql.*" %>

    1.2 连接、查询、关闭数据库

    怎样查看冰箱里面有没有大象?1、打开冰箱门。2、看一下。3、关闭冰箱门。就是这个过程。。。。。

    [html] view plain copy
    <%

    Class.forName("com.mysql.jdbc.Driver").newInstance();

    String url="jdbc:mysql://localhost:3306/news";

    String user="root";

    String password="1234";

    //配置并连接数据库

    Connection conn = DriverManager.getConnection(url, user, password);

    Statement st = conn.createStatement();

    //查询语句,显示最后10条并且倒序排列

    ResultSet rs = st.executeQuery("SELECT * FROM data ORDER BY id DESC LIMIT 10");

    //输出表头

    out.println("

    标题内容时间");

    //依次输出每个查询结果

    while(rs.next()){

    out.print(""+rs.getString("title")+""+rs.getString("content")+""+rs.getString("date")+"
    ");

    //如果采用列名,要加引号

    }

    out.print("
    ");

    //断开数据库

    conn.close();

    %>
    1. 页面的HTML代码

    为了页面漂亮一点,做点点美化~做一个表格来存放数据

    [html] view plain copy
    <%@ page language="java" import="java.util.*, java.sql.*" pageEncoding="gb2312"%>

    <%

    String path = request.getContextPath();

    String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";

    %>

    <%request.setCharacterEncoding("UTF-8");%>

    <%response.setCharacterEncoding("UTF-8");%>

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

    table{ width:800px; margin:auto; padding: 5px; font-size:12px; border:0px; background:#00CCFF;} tr{ background:#fff;} td{ padding: 5px;} #title{ text-align:center;}





    JSP页面中的数据库查询





    标题:


    内容:
























    标题 内容 时间






    3. 把前面两个代码放在一起

    放的时候注意代码的位置安排。

    [html] view plain copy
    <%@ page language="java" import="java.util.*, java.sql.*" pageEncoding="gb2312"%>

    <%

    String path = request.getContextPath();

    String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";

    %>

    <%request.setCharacterEncoding("UTF-8");%>

    <%response.setCharacterEncoding("UTF-8");%>

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

    table{ width:800px; margin:auto; padding: 5px; font-size:12px; border:0px; background:#00CCFF;} tr{ background:#fff;} td{ padding: 5px;} #title{ text-align:center;}





    无标题文档11



    <%

    //连接MySQL数据库

    Class.forName("com.mysql.jdbc.Driver").newInstance();

    String url="jdbc:mysql://localhost:3306/news";

    String user="root";

    String password="1234";

    Connection conn = DriverManager.getConnection(url, user, password);

    Statement st = conn.createStatement();

    %>











    <%

    //把表格第二行的显示放到while循环中,就可以根据查询结果画出表格了。参数则放在









    <%}

    //注意"}"的位置 %>

    标题 内容 时间
    内的相应位置。

    ResultSet rs = st.executeQuery("SELECT * FROM data ORDER BY id DESC LIMIT 10");

    while(rs.next()){%>

    <%=rs.getString("title") %> <%=rs.getString("content") %> <%=rs.getString("time") %>

    <%

    rs.close();

    conn.close();

    %>



    点赞 评论 复制链接分享
  • qq_34304947 qq_34304947 2018-05-26 13:08

    建议不要使用纯jsp开发,用java开发web程序比较快

    点赞 评论 复制链接分享

相关推荐