在DAO中写了一个查询数据库的代码,不知道是否正确!各位大侠帮忙看看代码,还有,不知道在JSP页面中如何将查询的结果显示出来!package com.DAO;import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;import com.bean.addUserBean;
import com.bean.UserBean;
import com.JDBC.GetConnection;public class DAO {
/**
 * 连接数据库
 * 
 */
private Connection conn;
private PreparedStatement pstat;
String sql = ""; public List getInfo(UserBean user)
{
List users = new ArrayList();; //存放一个用户的所有信息
conn= GetConnection.getConnection();
try 
{
String sql = "select * from Data where D_name = ?";
pstat = conn.prepareStatement(sql);
pstat.setString(1, user.getName());

ResultSet rs = pstat.executeQuery();
while(rs.next()){
int id = rs.getInt(1);
String name = rs.getString(2);
String use = rs.getString(3);
String sex = rs.getString(4);
String age = rs.getString(5);
String phone = rs.getString(6);
String qq = rs.getString(7);
String school = rs.getString(8);
String specialty = rs.getString(9);
String address = rs.getString(10);

UserBean user0 = new UserBean();    // 封装每条用户信息

user0.setId(id);
user0.setName(name);
user0.setUse(use);
user0.setSex(sex);
user0.setAge(age);
user0.setPhone(phone);
user0.setQq(qq);
user0.setSchool(school);
user0.setSpecialty(specialty);
user0.setAddress(address);

users.add(user0);
}
rs.close();
pstat.close();
conn.close();

catch 
(SQLException e) 
{
e.printStackTrace();
}
return users;
}
}

解决方案 »

  1.   


    没有通过Servlet怎么调用这个数据库执行的方法呢?
    JSP里不会写,大侠能贴出代码不?
    第一次接触List,JSP中写不来~
      

  2.   


    JSP中没写过这个标签的代码,能贴代码出来不?万分感谢!
      

  3.   

    Iterator it=users.iterator();
    UserBean user;
    while(it.hasNext())
    {
          user=it.next();
          //处理这个对象... 
    }
      

  4.   

    直接写JAVA代码,把得到的值放到你想放的位置
      

  5.   


    请问,怎么把这个放到JSP里?
    需要在JSP页面导入哪些东西~最终的结果,我想要在JSP页面实现 <%= name %>,这样的格式来显示从数据库查询后获取到的结果。
    大家,帮帮忙~ 挺急的!
      

  6.   

    <%= XXX.getName() %>这样的格式来显示,也可以!
    就是写不来~
      

  7.   

    <%@ taglib uri="/struts-tags" prefix="s"%>
     <s:iterator value="list"><s:property value="name"/><s:iterator/>
      

  8.   


    不行啊~uri不知道该填什么路径,而且,我要显示的这些结果都是要放在组件里的,比如:地址:<input name="address"  type="text" size="30" value=<%= address %> maxlength="25" />
      

  9.   

    用jstl ,
    <c:forEach var="item" test="${list}"   >                               //${list} list放在request或session里
          ${item.xxx} //item就遍历出来的,list的对象
    </c:forEacn>
      

  10.   

    我这个系统其实就是 JSP + JavaBean + Servlet 的一个系统。
    登陆,注册的功能都实现了,现在在JSP页面显示从数据库查询的内容,这个写不来了!这个系统,文件结构如下:
    1、数据库的JDBC链接单独放在了 GetConnection.java 这个文件里。
    2、有一个包,是专门存放各类的 Bean文件的。(UserBean.java 该文件是用户资料的Bean)(addUserBean.java 该文件是用户登录账号、密码、权限级别的Bean)
    3、有一个包,是专门存放各类的 Servlet文件的。
    4、然后就是专门处理数据库语句的 DAO.java 文件
    5、最后就是各类的JSP文件了!不知道以这样的文件结构,如何实现数据库查询,如何将查询的结果显示在JSP页面上。
    思路和代码,都不懂!大家能否帮帮忙~ 谢谢各位大侠了!
      

  11.   


    不行啊,这个只是一个循环体,可以直接用For方法来循环,可是怎么在JSP页面定义List对象,怎么调用 DAO 中的getInfo()方法?
      

  12.   


    我也觉得代码这门学问,有很多方法可以解决同一个问题!
    可是,问题是这个系统是我第一次写的系统,查询后的结果显示在JSP页面上,这个还没写过,完全不懂怎么写~
    大家能贴出对应我那查询的java代码的JSP页面的代码么?
      

  13.   


    <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
    <%@page import="org.apache.taglibs.standard.tag.common.core.ForEachSupport"%>
    <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
    <%@ page isELIgnored="false" %>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
      <head>
        <base href="<%=basePath%>">
      </head>
      
      <body>
        <%
         //在此定义一个List并调用后台方法!
         List list = DAO.getInfo();
         //之后将查出来的数据存入一个地方,session,request,page都行,这里我就存request
         request.setAttribute("list",list);
        %>
        <!-- 
         之后取出来,可以用struts2标签,也能用JSTL和EL表达式,看你这样子应该是后者!
    最上面加上这一行,否则你就用不了JSTL <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>   
    再加上这行,让EL表达式不需要任何载体,不记得是写false,还是true了,你试下!<%@ page isELIgnored="false" %>   
        -->
        <!-- 下面是用JSTL输出你查出来的LIST -->
        <!-- 我就当集合中的对象中有AA这个属性,把它输出 -->
        <c:forEach items="${requestScope.list}" var="list">
         ${list.aa}
        </c:forEach>
        
        
        <!-- 或者下面这样输出也行 -->
        <%
         for(int i = 0 ; i < list.size() ; i++){
        %>
         <lable><%=list.get(i).aa %></lable>
        <%
         }
        %>
      </body>
    </html>
    什么都好说,给分就好!
      

  14.   

    我们一般不会把小脚本写在JSP中,也不会在JSP中调用后台方法,一般JAVA代码都放后台servlet中,查出的数据存内置对象,传给页面!
      

  15.   


    那用小脚本吧要么这样不过这种在页面掉用dao,还是不好,你不用控制层吗?
    <jsp:useBean id="xx" class="xx.Dao" ></jsp:useBean>
    <jsp:getProperty property="" name="xx.info"/>
      

  16.   

    16#,介绍的很详细。在页面中可以嵌套java脚本,也可通过标签jstl来实现
      

  17.   

    16楼的代码试了下,报错呢!
    把  <base href="<%=basePath%>"> 这句删了,没报错,不过页面没反应,没有东西显示出来!连null都没有!换第二种,用<%
            for(int i = 0 ; i < list.size() ; i++){
        %>
                <lable><%=list.get(i).name %></lable>
        <%
            }
        %>
    报错!
      

  18.   

    18楼的代码也写过,可是显示的结果为null
      

  19.   

    el表达式或者 struts自带的迭代标签
      

  20.   

    不能用迭代标签啊,我是要实现修改用户信息时,进入JSP修改信息页面,用户信息的值自动填充的。关于数据库内容查询之后显示到JSP页面,若是将所有用户信息都显示到JSP页面。
    那么是不是就能用List这个数组来存?
      

  21.   


    //java的代码
    User user=userService.findById(1);//在servlet里将用户查询出来
    request.setAttribute("users",user); //保存到request里面在jsp页面就可以通过el表达式取出来了jsp页面就类似这样写<input name="username" type="text" size="30" value"${users.username}" maxlength="25" />
    <input name="pwd" type="text" size="30" value"${users.pwd}" maxlength="25" />
    <input name="address" type="text" size="30" value"${users.address}" maxlength="25" />
      

  22.   

    我是这么想的,在java代码中查询数据库,然后返回的结果存入List 数组中。(单用户就存入一列,多用户就存入多列)然后在JSP页面,通过定义List,来调用List里面的内容!
    调用的方式不要用<jsp:XXX ><jsp:XXX />这种标签,而是单个简单的<%= XXX %>或<%= XX.getXXX()%>这种标签来获得!25楼的朋友,这些我想要的都是反复强调过的~
      

  23.   

    大侠,你写的代码,我喜欢!在JSP页面显示数据时的代码 $(user.address) ,简单明了,可以放到组件中,就是我需要实现的。不过,代码别的都看的懂,就是 User user=userService.findById(1);有点不懂!
     User 是JavaBean类名么?userService.findById(1);是查询数据库的DAO类和该类里的方法么?还有,查询的 findById(1);方法的代码怎么写呢?
      

  24.   

    买本企业级的JAVAEE好好看下吧,你这样学起来很慢的,这书上都有的东西!讲的明明白白!
      

  25.   

    有空可以帮你看一下,你直接把你的dao导进jsp页面,调用方法,返回list,遍历输出jsp标签就行了
      

  26.   

    User user=userService.findById(1);
    我这里是指根据id查询某个用户出来,像你的话可以这样
    List<User> list=userService.findListByCondition(String username,Integer userId,String email);
    userService是service层,service层会调用dao层的代码获取到数据,像你的查询语句啥的都是在daoImple里写的,@SuppressWarnings("unchecked")
    public List<CepDataDict> getListByType(String type) {
    String hql = "from CepDataDict bean where bean.type=? order by bean.itemOrder ";
    Query query = getSession().createQuery(hql);
    query.setParameter(0, type); return query.setCacheable(true).list();
    }你那边按自己的需要改改就好了