JSP页面从数据库查询A表和B表
A表的字段假如是:姓名 学号  数学  英语   B表的字段是:姓名  学号   政治  历史  
                  XM   1     10   10                   XM    2       20   20
                  XM   1     10   10                   
如何让这两个表像 姓名 学号  数学  英语                  
                   XM   1     10   10                                 
                   XM   1     10   10                        姓名  学号   政治  历史                    
                   XM    2       20   20分开显示在JSP页面中 ,而不是   姓名 学号  数学  英语                  
                                XM   1     10   10    
                                           
                               姓名  学号   政治  历史                    
                               XM    2       20   20
                  
                              姓名 学号  数学  英语                  
                               XM   1     10   10                              求代码,初学者,先谢谢各位大神
                             
         

解决方案 »

  1.   

    LZ的意思是不是说想将查询出来的结果分开显示?如果A表和B表是分开查询出来的,那就可以把他放在两个个List<对象>对象中,在JSP页面用<f:foreach>标签循环显示就行了。如果是A表和B表同时连接查询出来的话,记得加上order by 学号,然后再在页面上显示出来不就好了吗
      

  2.   

    谢谢olafo7给了思路,我再去查查,关键不会放到LIST里面,我去百度下
      

  3.   

    不放list里面?   那还是可以区分的吧,你的数据是怎么区分
    姓名 学号 政治 历史   
    姓名 学号 数学 英语   
    这两个的信息的,那就怎么的去if,或者简单点  页面代码发上来!
      

  4.   

     <%     
           request.setCharacterEncoding("utf-8");
           ResultSet rs=null;
           String sql=" select * from a,b";      
           while(rs.next()){ 
                DA.getConnection();//连接
                  rs =DB.execueQuery(sql);
      <tr>
           <th align="center" bgcolor="#ACD6FF">姓名</th>
           <th align="center" bgcolor="#ACD6FF">学号</th>
           <th align="center" bgcolor="#ACD6FF">政治</th>
           <th align="center" bgcolor="#ACD6FF">历史</th>
      </tr>
       <tr>
            <td colspan="2" align="center"><%=rs.getString("姓名")%></td>
            <td align="right" id="bb"><%=rs.getString("学号")%></td>
            <td align="right" id="bc"><%=rs.getString("政治")%></td>
            <td align="right" id="scx"><%=rs.getString("历史")%></td>
    </tr>
      <tr>
           <th align="center" bgcolor="#ACD6FF">姓名</th>
           <th align="center" bgcolor="#ACD6FF">学号</th>
           <th align="center" bgcolor="#ACD6FF">数学</th>
           <th align="center" bgcolor="#ACD6FF">英语</th>
      </tr>
       <tr>
            <td colspan="2" align="center"><%=rs.getString("姓名")%></td>
            <td align="right" id="bb"><%=rs.getString("学号")%></td>
            <td align="right" id="bc"><%=rs.getString("数学")%></td>
            <td align="right" id="scx"><%=rs.getString("英语")%></td>
      </tr>
       <%} DB.close();//关闭   
        %>
      

  5.   

    <%   
      request.setCharacterEncoding("utf-8");
      ResultSet rs=null;
      String sql=" select * from a,b";   
      while(rs.next()){  
      DA.getConnection();//连接
      rs =DB.execueQuery(sql);
      <tr>
      <th align="center" bgcolor="#ACD6FF">姓名</th>
      <th align="center" bgcolor="#ACD6FF">学号</th>
      <th align="center" bgcolor="#ACD6FF">政治</th>
      <th align="center" bgcolor="#ACD6FF">历史</th>
      </tr>
      <tr>
      <td  align="center"><%=rs.getString("姓名1")%></td>
      <td align="right" id="bb"><%=rs.getString("学号1")%></td>
      <td align="right" id="bc"><%=rs.getString("政治")%></td>
      <td align="right" id="scx"><%=rs.getString("历史")%></td>
    </tr>
      <tr>
      <th align="center" bgcolor="#ACD6FF">姓名</th>
      <th align="center" bgcolor="#ACD6FF">学号</th>
      <th align="center" bgcolor="#ACD6FF">数学</th>
      <th align="center" bgcolor="#ACD6FF">英语</th>
      </tr>
      <tr>
      <td  align="center"><%=rs.getString("姓名2")%></td>
      <td align="right" id="bb"><%=rs.getString("学号2")%></td>
      <td align="right" id="bc"><%=rs.getString("数学")%></td>
      <td align="right" id="scx"><%=rs.getString("英语")%></td>
      </tr>
      <%} DB.close();//关闭   
      %> 
    我现在没在单位,输入的代码大概就是这个意思,现在显示的不是俩表分别显示,是交替显示,怎么样能让表A的内容在最上面,表B的都在下面
      

  6.   

    <%   
      request.setCharacterEncoding("utf-8");
      ResultSet rs=null;
      String sql=" select * from a,b";   
      DA.getConnection();//连接
      rs =DB.execueQuery(sql);
      while(rs.next()){  
      <tr>
      <th align="center" bgcolor="#ACD6FF">姓名</th>
      <th align="center" bgcolor="#ACD6FF">学号</th>
      <th align="center" bgcolor="#ACD6FF">政治</th>
      <th align="center" bgcolor="#ACD6FF">历史</th>
      </tr>
      <tr>
      <td colspan="2" align="center"><%=rs.getString("姓名")%></td>
      <td align="right" id="bb"><%=rs.getString("学号")%></td>
      <td align="right" id="bc"><%=rs.getString("政治")%></td>
      <td align="right" id="scx"><%=rs.getString("历史")%></td>
    </tr>
      <tr>
      <th align="center" bgcolor="#ACD6FF">姓名</th>
      <th align="center" bgcolor="#ACD6FF">学号</th>
      <th align="center" bgcolor="#ACD6FF">数学</th>
      <th align="center" bgcolor="#ACD6FF">英语</th>
      </tr>
      <tr>
      <td colspan="2" align="center"><%=rs.getString("姓名")%></td>
      <td align="right" id="bb"><%=rs.getString("学号")%></td>
      <td align="right" id="bc"><%=rs.getString("数学")%></td>
      <td align="right" id="scx"><%=rs.getString("英语")%></td>
      </tr>
      <%} DB.close();//关闭   
      %>真实的应该是这个样子的吧,肯定是先查询出结果,然后再遍历显示的,这个解决方法,你可以在sql后面加一个order by的,选择一个排序条件,将a表的数据都显示在上面,然后依次遍历就可以了
      

  7.   

    像这两个表我的order by应该按照什么条件呢,两个表的数据都差不多
    order by 表A.姓名,表B点姓名?
      

  8.   

    <%  
      request.setCharacterEncoding("utf-8");
      ResultSet rs=null;
      String sql=" select * from a,b";  
      DA.getConnection();//连接
      rs =DB.execueQuery(sql);
      while(rs.next()){  
    int i=0;
    if(rs.getString("政治")!=null){
    i=1;
    }else
    {
    i=2;
    }

      <tr>
      <th align="center" bgcolor="#ACD6FF">姓名</th>
      <th align="center" bgcolor="#ACD6FF">学号</th>
      <th align="center" bgcolor="#ACD6FF">政治</th>
      <th align="center" bgcolor="#ACD6FF">历史</th>
      </tr>
    <%if(i==1){%>
      <tr>
      <td colspan="2" align="center"><%=rs.getString("姓名")%></td>
      <td align="right" id="bb"><%=rs.getString("学号")%></td>
      <td align="right" id="bc"><%=rs.getString("政治")%></td>
      <td align="right" id="scx"><%=rs.getString("历史")%></td>
    </tr>
    <%}%>
      <tr>
      <th align="center" bgcolor="#ACD6FF">姓名</th>
      <th align="center" bgcolor="#ACD6FF">学号</th>
      <th align="center" bgcolor="#ACD6FF">数学</th>
      <th align="center" bgcolor="#ACD6FF">英语</th>
      </tr>
    <%if(i==2){%>
      <tr>
      <td colspan="2" align="center"><%=rs.getString("姓名")%></td>
      <td align="right" id="bb"><%=rs.getString("学号")%></td>
      <td align="right" id="bc"><%=rs.getString("数学")%></td>
      <td align="right" id="scx"><%=rs.getString("英语")%></td>
      </tr>
    <%}%>
      <%} DB.close();//关闭  
      %>这样应该行了吧!