首先先要在WEB-INF下写一个对于数据表的映射XML。大多数起名叫:mapping.xml
我只举例写了一个表的映射示例,请参考。
<class name="org.roller.model.PageData"
         identity="id"
         access="shared"
         key-generator="MAX"
         auto-complete="true">
    <map-to table="page" /> //表名
    <cache-type type="count-limited" />    <field name="id"       //表中的字段名。以下均同
           type="java.lang.String"
           get-method="getId"
           set-method="setId">
      <sql name="id"
           dirty="check" />
      <bind-xml name="id"
                node="attribute" />
    </field>    <field name="website"
           type="org.roller.model.WebsiteData"
           get-method="getWebsite"
           set-method="setWebsite">
      <sql name="websiteid"
           dirty="check" />
      <bind-xml
                node="element" />
    </field>    <field name="name"
           type="java.lang.String"
           get-method="getName"
           set-method="setName">
      <sql name="name"
           dirty="check" />
    </field>    <field name="description"
           type="java.lang.String"
           get-method="getDescription"
           set-method="setDescription">
      <sql name="description"
           dirty="check" />
    </field>    <field name="link"
           type="java.lang.String"
           get-method="getLink"
           set-method="setLink">
      <sql name="link"
           dirty="check" />
    </field>    <field name="template"
           type="java.lang.String"
           get-method="getTemplate"
           set-method="setTemplate">
      <sql name="template"
           dirty="check" />
    </field>    <field name="updateTime"
           type="java.util.Date"
           get-method="getUpdateTime"
           set-method="setUpdateTime">
      <sql name="updatetime"
           type="timestamp"
           dirty="check" />
    </field>  </class>
需要form-bean要使用其中的GET和SET方法。来得到或更新数据。

解决方案 »

  1.   

    我也今天遇到了同样的问题
    你可以去这里看看
    http://expert.csdn.net/Expert/topic/2480/2480483.xml?temp=.1079981
    我先给你发个大概思路吧
    我是用ArrayList添加从数据库中得到的列值
    然后再显示在jsp页面上
    我现在能查到数据,能显示最后的数据
    就是前面的数据没有显示
      

  2.   

    步骤如下:
    1、到Oracle的otn网站上下载xdk.
    2、到apache网站上下载xtags.
    3、代码如下:
    db访问层(oracle为例):this.connection = ...  //建立连接
    this.etcSQL="select name from aa where rownum<=100";
    PreparedStatement statement = this.connection.prepareStatement(this.etcSQL
    );
    ResultSet rset = statement.executeQuery();

    query =  new OracleXMLQuery(this.connection, rset);
    query.setEncoding(this.encoding);
    query.setErrorTag("error");
    query.useNullAttributeIndicator(true);
    query.useLowerCaseTagNames();String xdkXML = query.getXMLString();
    以下还有
      

  3.   

    中间层:(将db得来的xml 转换成你所需要的格式)如下:import javax.xml.transform.Transformer;
    import javax.xml.transform.TransformerException;
    import javax.xml.transform.TransformerConfigurationException;
    import javax.xml.transform.TransformerFactory;
    import javax.xml.transform.stream.StreamResult;
    import javax.xml.transform.stream.StreamSource;...
    TransformerFactory tFactory = TransformerFactory.newInstance();
    InputStream in = context.getResourceAsStream(xsltfile); //xsltfile为xslt文件
    Transformer transformer = tFactory.newTransformer(new StreamSource(in));
    transformer.setOutputProperty("encoding", "gb2312");
    StringWriter sw = new StringWriter();
    transformer.transform(new StreamSource(new StringReader(xdkXML)), new StreamResult(sw));
    String okXML = sw.toString();
    以下还有
      

  4.   

    显示层:(将xml显示在jsp页面上)
    <%@ page contentType="text/html;charset=gb2312" language="java"%>
    <%@ taglib uri="/taglibs-xtags" prefix="xtags" %><xtags:parse>
    <%request.getAttribute("okXML").toString()%>
    </xtags:parse><xtags:forEach select="/data/ReportList2">
        <xtags:valueOf select='name'/>
    </xtags:forEach>
      

  5.   

    我希望用struts的<logic:iterate>标记库,但是总提示:
    javax.servlet.jsp.JspException: Cannot find bean guide in scope request
    at org.apache.struts.util.RequestUtils.lookup(RequestUtils.java:940)
    at org.apache.struts.taglib.logic.IterateTag.doStartTag(IterateTag.java:277)
    at _admin._gzxx._P040201._jspService(P040201.jsp:64)
    [/admin/gzxx/P040201.jsp]
      

  6.   

    你出现的异常和我的一样,我现在解决这个问题了
    <logic:iterate id="id" name="value">
      <tr>
        <td><bean:write name="id" property="username"/></td>
      </tr>
    </logic:iterate>
    这段代码中的id随便起名,name是从Action中传出来的request.setAttribute(*,*)的值,
    property是ActionForm中的一个值,我也是要把从数据库中得到的值显示在页面上,
    我准备把要查询的字段做个<html:hidden>试试。
      

  7.   

    这个问题我今天刚解决 
    你去看看这个吧
    http://expert.csdn.net/Expert/topic/2473/2473555.xml?temp=.1443903
      

  8.   

    要看你什么数据库。 
    用top x 的方法可能可以解决! 
    SELECT TOP N问题(1) 
    2003-08-21    admin    http://tutorial.huacool.com    点击: 31 
     
    SELECT TOP N问题(1) 
        本贴讨论SELECT TOP N问题.
        现在正在一家计算机公司兼职,开发ASP应用. 在最近的一个商业项目里有这样一个需求:用户在查询时,只需要按照某(些)列排序后TOP 20的纪录. SQL SERVER 7很好地支持了TOP N 操作,但考虑到系统移植问题, 我又考虑在其他几个主流DBMSs中如何实现. 鉴于只有DB2 UDB 7,ORACLE 8i,SQL SERVER 7,本贴仅讨论这三个DBMS.
        简单地说,TOP N问题就是:在SELECT中,仅选择按照某(些)列排序后TOP N的纪录. 考虑到等值问题,又可以分为两种: 一是仅仅返回N条纪录(M 1), 二是还包括所有于第N条等值的纪录(M 2). 当然最内层的子查询也可以有其他的子句, 或者TOP N也可以应用在没有ORDER BY的情况下,这样更简单.1. SQL SERVER 7: 用 TOP N (WITH TIES)
    M1: 
    SELECT TOP N * FROM MYTABLE ORDER BY ORD_COL;M2: 
    SELECT TOP N  WITH TIES * FROM MYTABLE ORDER BY ORD_COL;
    注: SQL SERVER 7提供了PERCENT N WITH TIES, ACCESS 中提供了TOP N,但含义是M 2.2. ORACLE 8i: 用 ROWNUM<=N
    M1:
    SELECT * FROM 
         ( SELECT * FROM MYTABLE ORDER BY ORD_COL DESC) 
    WHERE ROWNUM<=N
    M2:
    SELECT * FROM MYTABLE WHERE ORD_COL>=
       (SELECT MIN(ORD_COL) FROM 
            ( SELECT * FROM MYTABLE ORDER BY ORD_COL DESC) 
        WHERE ROWNUM<=N)
    ORDER BY ORD_COL DESC
    注意以下两种错误用法:
    WRONG 1:
    SELECT * FROM MYTABLE
    WHERE  ROWID<=N
    ORDER BY ORD_COL DESC;WRONG 2:(因为WHERE ROWNUM<=N 在ORDER BY 前执行)
    SELECT * FROM MYTABLE
    WHERE  ROWNUM<=N 
    ORDER BY ORD_COL DESC;3: DB2
    用FETCH FIRST N ROWS ONLY 
    M1: 
    SELECT * FROM MYTABLE
    ORDER BY ORD_COL DESC
    FETCH FIRST N ROWS ONLY
    M2:
    没有找到,因为DB2不允许在FROM中嵌套有ORDER BY子句的子查询. 
     
      

  9.   

    http://expert.csdn.net/Expert/topic/2480/2480483.xml?temp=4.690188E-02
      

  10.   

    package  OST;import OST.jdbc.util.ConnectionPool;
    import OST.lykDAO;import java.lang.reflect.InvocationTargetException;
    import java.util.Locale;
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpSession;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import org.apache.commons.beanutils.PropertyUtils;
    import org.apache.commons.logging.Log;
    import org.apache.commons.logging.LogFactory;
    import org.apache.struts.action.Action;
    import org.apache.struts.action.ActionError;
    import org.apache.struts.action.ActionErrors;
    import org.apache.struts.action.ActionForm;
    import org.apache.struts.action.ActionForward;
    import org.apache.struts.action.ActionMapping;
    import org.apache.struts.action.ActionServlet;
    import org.apache.struts.util.ModuleException;
    import org.apache.struts.util.MessageResources;import java.io.IOException;
    import java.sql.Connection;
    import java.sql.SQLException;
    import java.util.Collection;public final class lykAction extends Action 
    {
        // 变量定义:
        private Log log = LogFactory.getLog("org.apache.struts.webapp.Example");    private ConnectionPool pool;    public lykAction() {
            pool = ConnectionPool.getInstance();
        }
        //函数定义:
        public ActionForward execute(ActionMapping mapping,
     ActionForm form,
     HttpServletRequest request,
     HttpServletResponse response)
    throws Exception 
        {
    // Extract attributes and parameters we will need
    Locale locale = getLocale(request);
    MessageResources messages = getResources(request);
    HttpSession session = request.getSession();
    lykForm m_lykForm = (lykForm) form;

         Connection con = null;    try 
            {
           con = pool.getConnection();
           lykDAO m_lykDAO = new lykDAO(con);              String action=request.getParameter("action");
          
           if(action==null)action="find";
               
               if(action.equals("delete"))
               {
                   String expression=request.getParameter("expression");
                   m_lykDAO.removeID(expression);
               }
                ////////////
               if(action.equals("update"))
               {
                     String expression=request.getParameter("expression");
                     lyk m_lyk= new lyk(); 
                   //<update>
                     m_lyk.setUser_id(m_lykForm.getUser_id());
                     m_lyk.setPassword(m_lykForm.getPassword());
                     m_lyk.setName(m_lykForm.getName());
                     m_lyk.setDescription(m_lykForm.getDescription());
                     m_lyk.setWeb_site(m_lykForm.getWeb_site());
                     m_lyk.setAddress(m_lykForm.getAddress());
                     //</update>
                  
                   m_lykDAO.update(m_lyk,expression);
               }
               ///////////////
           //<sqlstr>
           String sql="SELECT * FROM dbo.attraction";
           //</sqlstr>
            Collection col = m_lykDAO.findSQL(sql);
            request.setAttribute("lyk",col);              //<分页>
            m_lykForm.setRowCount(col.size());
            m_lykForm.setLength(5);//设置每页显示记录数
           
            String page=request.getParameter("page");
            int ipage;
            try 
            {
                ipage=java.lang.Integer.parseInt(page,10);
            }
            catch (Exception e) 
                {
                    ipage=m_lykForm.getPage();
                }
            m_lykForm.setPage(ipage);
            m_lykForm.setOffset(ipage*m_lykForm.getLength());
            m_lykForm.setPageCount(m_lykForm.getRowCount()/m_lykForm.getLength()+1);
           
            String strPage="";
           
            strPage+="共";
            strPage+=String.valueOf(m_lykForm.getRowCount());
            strPage+="条记录,共";
            strPage+=String.valueOf(m_lykForm.getPageCount());
            strPage+="页,当前是第";
            strPage+=String.valueOf(ipage+1);
            strPage+="页,      ";
           
            int istart,iend;
            istart=ipage-5;
            if(istart<0) {istart=0;}
            iend=istart+10;
            if(iend>m_lykForm.getPageCount()) {iend=m_lykForm.getPageCount();}
            istart=iend-10;
            if(istart<0) {istart=0;}
            for(int i=istart;i<iend;i++)
            {
                strPage+="<a href='lykAction.do?action=find&page=";
                strPage+=String.valueOf(i);
                strPage+="'>";
                strPage+=String.valueOf(i+1);
                strPage+="</a>"; 
                strPage+="  ";
            }
           
            m_lykForm.setMybeanvariable1(strPage);  
                  m_lykForm.setAction(action);  
            request.setAttribute("lykForm",m_lykForm);
                  //</分页>       return mapping.findForward("success");
        } 
    catch (SQLException e) 
            {
           e.printStackTrace();
           throw new RuntimeException("Unable to get connection.");
         } 
            finally
            {
               try 
                 {
             if (con != null)
               con.close();
                } 
                 catch (SQLException e) 
                 {
             throw new RuntimeException(e.getMessage());
                }
           }    }} 
      

  11.   

    package  OST;import OST.jdbc.util.ConnectionPool;
    import OST.lykDAO;import java.lang.reflect.InvocationTargetException;
    import java.util.Locale;
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpSession;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import org.apache.commons.beanutils.PropertyUtils;
    import org.apache.commons.logging.Log;
    import org.apache.commons.logging.LogFactory;
    import org.apache.struts.action.Action;
    import org.apache.struts.action.ActionError;
    import org.apache.struts.action.ActionErrors;
    import org.apache.struts.action.ActionForm;
    import org.apache.struts.action.ActionForward;
    import org.apache.struts.action.ActionMapping;
    import org.apache.struts.action.ActionServlet;
    import org.apache.struts.util.ModuleException;
    import org.apache.struts.util.MessageResources;import java.io.IOException;
    import java.sql.Connection;
    import java.sql.SQLException;
    import java.util.Collection;public final class lykAction extends Action 
    {
        // 变量定义:
        private Log log = LogFactory.getLog("org.apache.struts.webapp.Example");    private ConnectionPool pool;    public lykAction() {
            pool = ConnectionPool.getInstance();
        }
        //函数定义:
        public ActionForward execute(ActionMapping mapping,
     ActionForm form,
     HttpServletRequest request,
     HttpServletResponse response)
    throws Exception 
        {
    // Extract attributes and parameters we will need
    Locale locale = getLocale(request);
    MessageResources messages = getResources(request);
    HttpSession session = request.getSession();
    lykForm m_lykForm = (lykForm) form;

         Connection con = null;    try 
            {
           con = pool.getConnection();
           lykDAO m_lykDAO = new lykDAO(con);              String action=request.getParameter("action");
          
           if(action==null)action="find";
               
               if(action.equals("delete"))
               {
                   String expression=request.getParameter("expression");
                   m_lykDAO.removeID(expression);
               }
                ////////////
               if(action.equals("update"))
               {
                     String expression=request.getParameter("expression");
                     lyk m_lyk= new lyk(); 
                   //<update>
                     m_lyk.setUser_id(m_lykForm.getUser_id());
                     m_lyk.setPassword(m_lykForm.getPassword());
                     m_lyk.setName(m_lykForm.getName());
                     m_lyk.setDescription(m_lykForm.getDescription());
                     m_lyk.setWeb_site(m_lykForm.getWeb_site());
                     m_lyk.setAddress(m_lykForm.getAddress());
                     //</update>
                  
                   m_lykDAO.update(m_lyk,expression);
               }
               ///////////////
           //<sqlstr>
           String sql="SELECT * FROM dbo.attraction";
           //</sqlstr>
            Collection col = m_lykDAO.findSQL(sql);
            request.setAttribute("lyk",col);              //<分页>
            m_lykForm.setRowCount(col.size());
            m_lykForm.setLength(5);//设置每页显示记录数
           
            String page=request.getParameter("page");
            int ipage;
            try 
            {
                ipage=java.lang.Integer.parseInt(page,10);
            }
            catch (Exception e) 
                {
                    ipage=m_lykForm.getPage();
                }
            m_lykForm.setPage(ipage);
            m_lykForm.setOffset(ipage*m_lykForm.getLength());
            m_lykForm.setPageCount(m_lykForm.getRowCount()/m_lykForm.getLength()+1);
           
            String strPage="";
           
            strPage+="共";
            strPage+=String.valueOf(m_lykForm.getRowCount());
            strPage+="条记录,共";
            strPage+=String.valueOf(m_lykForm.getPageCount());
            strPage+="页,当前是第";
            strPage+=String.valueOf(ipage+1);
            strPage+="页,      ";
           
            int istart,iend;
            istart=ipage-5;
            if(istart<0) {istart=0;}
            iend=istart+10;
            if(iend>m_lykForm.getPageCount()) {iend=m_lykForm.getPageCount();}
            istart=iend-10;
            if(istart<0) {istart=0;}
            for(int i=istart;i<iend;i++)
            {
                strPage+="<a href='lykAction.do?action=find&page=";
                strPage+=String.valueOf(i);
                strPage+="'>";
                strPage+=String.valueOf(i+1);
                strPage+="</a>"; 
                strPage+="  ";
            }
           
            m_lykForm.setMybeanvariable1(strPage);  
                  m_lykForm.setAction(action);  
            request.setAttribute("lykForm",m_lykForm);
                  //</分页>       return mapping.findForward("success");
        } 
    catch (SQLException e) 
            {
           e.printStackTrace();
           throw new RuntimeException("Unable to get connection.");
         } 
            finally
            {
               try 
                 {
             if (con != null)
               con.close();
                } 
                 catch (SQLException e) 
                 {
             throw new RuntimeException(e.getMessage());
                }
           }    }}