数据表:
部门 人员
开发部 小a
开发部 小b
开发部 小c
开发部 小d
开发部 小e
办公室 大a
办公室 大b
办公室 大c
. .
. .
. .
效果页面显示为
开发部
小a 小b 小c
小d 小e
办化室
大a 大b 大c
每部门
每行显示三条
------解决方案--------------------
while(rs.next()){
out.println( "tr ");
int i;
for(i=0; i <3&&rs.next(); i++)
out.println( " <td> "+rs.getString(2)+ " </td> ");
out.println( " </tr> ");
}
------解决方案--------------------
int i=1;
while(rs.next()){
if(i==1) { printf( " <br> ");
out.println( " <td> "+rs.getString(2)+ " </td> ");
i++;
if(!rs.next()) printf( " </br> ");
continue;
}
if(i==2) {
out.println( " <td> "+rs.getString(2)+ " </td> ");
i++;
if(!rs.next()) printf( " </br> ");
continue;
}
if(i==3) { i=1;
out.println( " <td> "+rs.getString(2)+ " </td> </br> ");
}
}
试试看~~~~~ -_-
如果不行的话再试试:
Statement stm = conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
int i=1;
while(rs.next()){
if(i==1) { printf( " <br> ");
out.println( " <td> "+rs.getString(2)+ " </td> ");
i++;
if(!rs.next()) { printf( " </br> "); rs.previous();}
else rs.previous();
continue;
}
if(i==2) {
out.println( " <td> "+rs.getString(2)+ " </td> ");
i++;
if(!rs.next()) { printf( " </br> "); rs.previous();}
else rs.previous();
continue;
}
if(i==3) { i=1;
out.println( " <td> "+rs.getString(2)+ " </td> </br> ");
}
}
------解决方案--------------------
楼主,人家给出的大概思路,你也不要一定能运行正确,思路对了你大概调试一下很快就出来了。
我也给出一方案
private static int MAX_COL=3;
....
int iNow =0;
while(rs.next()){
if((iNow %MAX_COL )==0){
if(iNow> 0){
out.println( " </tr> ")
}
out.println( " <tr> <td> " + getString(2) + " </td> ")
}else{
out.println( " <td> " + getString(2) + " </td> ")
}