jsp页面查询数据库的问题

同样的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页面代码哪需要修改吗?求详解,谢谢

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

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

要在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();

%>



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

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