Jsp 如何迭代使用hashmap映射的列表元素

Jsp 如何迭代使用hashmap映射的列表元素,jsp,jdbc,collections,resultset,Jsp,Jdbc,Collections,Resultset,我能实现大部分我想要的,但我被困在这里了。。请帮忙 public class DatabaseHandler { private static String DB_CLASS ="com.microsoft.sqlserver.jdbc.SQLServerDriver"; //private static String DB_USER,DB_PASSWORD, DB_NAME, DB_URL, DB_QUERY_ID; Statement stmt; //=null; Connection co

我能实现大部分我想要的,但我被困在这里了。。请帮忙

public class DatabaseHandler {
private static String DB_CLASS ="com.microsoft.sqlserver.jdbc.SQLServerDriver";
//private static String DB_USER,DB_PASSWORD, DB_NAME, DB_URL, DB_QUERY_ID;
Statement stmt; //=null;
Connection conn;// = null;
public static Map<Integer, List<String>> allActiveQuery = new HashMap<Integer, List<String>>();

public DatabaseHandler() {

    brattleDb();


}

public  void brattleDb(){
        try {
        Class.forName(DB_CLASS);
        conn = DriverManager.getConnection("jdbc:sqlserver://TOSHIBA-PC;databasename=brattle;user=sa;password=naved");
        stmt = conn.createStatement();
        ResultSet rs = stmt.executeQuery("SELECT * FROM database_details_master WHERE status = 1");
    int i=0;
    while(rs.next()){
        List<String> row  = new ArrayList<String>();
        row.add(rs.getString(1).toString());
        row.add(rs.getString(2).toString());
        row.add(rs.getString(3).toString());
        row.add(rs.getString(4).toString());
        row.add(rs.getString(5).toString());
        row.add(Integer.toString(rs.getInt(6)));
        row.add(Integer.toString(rs.getInt(7)));
        row.add(rs.getString(8).toString());
        row.add(rs.getString(9).toString());
        row.add(rs.getString(10).toString());
        row.add(rs.getString(11).toString());
        row.add(Integer.toString(rs.getInt(12)));
        row.add(Integer.toString(rs.getInt(13)));
        allActiveQuery.put(i, row);
        i++;
    }
            rs.close();
            conn.close();

    } catch (ClassNotFoundException e) {
        e.printStackTrace();
    } catch (SQLException e) {
        e.printStackTrace();
    }


}

public void setDynamicConnection(String db_name, String db_user, String db_pass, String db_url){
    try {
        Class.forName(DB_CLASS);
        conn= DriverManager.getConnection("jdbc:sqlserver:"+db_url+";databasename="+db_name+";user="+db_user+";password="+db_pass+"");
        stmt = conn.createStatement();

    } catch (ClassNotFoundException e) {
        e.printStackTrace();
    } catch (SQLException e) {
        e.printStackTrace();
    }
}
公共类数据库处理程序{
私有静态字符串DB_CLASS=“com.microsoft.sqlserver.jdbc.SQLServerDriver”;
//私有静态字符串DB_USER、DB_PASSWORD、DB_NAME、DB_URL、DB_QUERY_ID;
语句stmt;//=null;
连接连接;//=null;
公共静态映射allActiveQuery=newHashMap();
公共数据库处理程序(){
brattleDb();
}
公共图书馆数据库(){
试一试{
类名称(DB_类);
conn=DriverManager.getConnection(“jdbc:sqlserver://TOSHIBA-PC;databasename=brattle;user=sa;password=naved”);
stmt=conn.createStatement();
ResultSet rs=stmt.executeQuery(“从数据库中选择*,状态=1”);
int i=0;
while(rs.next()){
列表行=新的ArrayList();
添加(rs.getString(1.toString());
add(rs.getString(2.toString());
add(rs.getString(3.toString());
add(rs.getString(4.toString());
add(rs.getString(5.toString());
add(Integer.toString(rs.getInt(6));
add(Integer.toString(rs.getInt(7));
add(rs.getString(8.toString());
add(rs.getString(9.toString());
add(rs.getString(10.toString());
add(rs.getString(11.toString());
add(Integer.toString(rs.getInt(12));
add(Integer.toString(rs.getInt(13));
ALLActivequitry.put(i,row);
i++;
}
rs.close();
康涅狄格州关闭();
}catch(classnotfounde异常){
e、 printStackTrace();
}捕获(SQLE异常){
e、 printStackTrace();
}
}
public void setDynamicConnection(String db_name、String db_user、String db_pass、String db_url){
试一试{
类名称(DB_类);
conn=DriverManager.getConnection(“jdbc:sqlserver:+db_url+”databasename=“+db_name+”user=“+db_user+”;password=“+db_pass+”);
stmt=conn.createStatement();
}catch(classnotfounde异常){
e、 printStackTrace();
}捕获(SQLE异常){
e、 printStackTrace();
}
}
}

上述代码从状态为active的数据库中获取行

在Jsp上,我尝试获取所有行,如下所示:

<%
        // Connection to get active queries

        try{
        DatabaseHandler dbh = new DatabaseHandler();

        for(Map.Entry<Integer, List<String>> entry: dbh.allActiveQuery.entrySet()){
            Integer key = entry.getKey();
            out.println("Query:"+key+"<br><hr>");
                List<String> values  = entry.getValue();
                out.println(values+ "<br> <hr> ");

        }

        }


    catch(Exception e){
        out.print(e.toString());
    }

         %>

我得到的结果是:

 1. [sa, wms, TOSHIBA-PC, naved, FIFO Query, 23, 35, select CSDETL01.SKUCODE ,SKUMST00.SKUDESC ,CSDETL01.BATCH ,SKUMST00.MRP , CSDETL01.MFGDATE ,CSDETL01.EXPDATE ,sum(CSDETL01.CURQTY) , Datediff(d, CSDETL01.MFGDATE, CSDETL01.EXPDATE) ,Datediff(d, GETDATE(), CSDETL01.EXPDATE) , Datediff(d, GETDATE(), CSDETL01.EXPDATE)*100/Datediff(d, CSDETL01.MFGDATE, CSDETL01.EXPDATE) from CSDETL01, SKUMST00 where SKUMST00.INOWNER =~MCCAIN~ and SKUMST00.whse =~MEH~ and SKUMST00.SKUCODE = CSDETL01.SKUCODE and CSDETL01.STATUS <= ~400~ group by CSDETL01.SKUCODE, CSDETL01.BATCH, CSDETL01.MFGDATE, CSDETL01.EXPDATE, SKUMST00.MRP, SKUMST00.SKUDESC order by CSDETL01.SKUCODE, CSDETL01.BATCH, ka@gmail.com, , , 1, 24] <br>
 2. [sa, wms, TOSHIBA-PC, naved, Partial Pallet Query, 23, 38, Select PALLETNO,SKUCODE, BATCH, MFGDATE, EXPDATE, CURLOCID, DTLM, sum(CURQTY) as SumQTY from CSDETL01 where INOWNER =~MCCAIN~ and whse =~MEH~ and SKUCODE in (~919044~, ~911802~) and STATUS <= ~400~ and LDUNIT = ~PALLET~ group by PALLETNO, SKUCODE, BATCH, MFGDATE, EXPDATE, CURLOCID, DTLM order by PALLETNO, k@yahoo.in, , , 1, 1]
 3. [sa, wms, TOSHIBA-PC, naved, FEFO QUERY, 23, 40, select CSDETL01.SKUCODE ,SKUMST00.SKUDESC ,CSDETL01.BATCH ,SKUMST00.MRP , CSDETL01.MFGDATE ,CSDETL01.EXPDATE ,sum(CSDETL01.CURQTY) , Datediff(d, CSDETL01.MFGDATE, CSDETL01.EXPDATE) ,Datediff(d, GETDATE(), CSDETL01.EXPDATE) , Datediff(d, GETDATE(), CSDETL01.EXPDATE)*100/Datediff(d, CSDETL01.MFGDATE, CSDETL01.EXPDATE) from CSDETL01, SKUMST00 where SKUMST00.INOWNER =~MCCAIN~ and SKUMST00.whse =~MEH~ and SKUMST00.SKUCODE = CSDETL01.SKUCODE and CSDETL01.STATUS <= ~400~ group by CSDETL01.SKUCODE, CSDETL01.BATCH, CSDETL01.MFGDATE, CSDETL01.EXPDATE, SKUMST00.MRP, SKUMST00.SKUDESC order by CSDETL01.SKUCODE, CSDETL01.BATCH, k@gmail.com, , , 1, 1]

1。[sa,wms,东芝PC,导航,先进先出查询,23,35,选择CSDELT01.SKUCODE,SKUMST00.SKUDESC,CSDELT01.BATCH,SKUMST00.MRP,CSDELT01.MFGDATE,CSDELT01.EXPDATE,sum(CSDELT01.CURQTY),DATEFF(d,GETDATE(),CSDELT01.EXPDATE),DATEF(d,GETDATE(),CSDELT01.EXPDATE)*100/DATEFF(d,csdelt01.MFGDATE,csdelt01.EXPDATE)来自csdelt01,SKUMST00,其中SKUMST00.INOWNER=~MCCAIN~和SKUMST00.whse=~MEH~和SKUMST00.SKUCODE=csdelt01.SKUCODE和csdelt01.STATUS为什么不简单地遍历结果

    for(Map.Entry<Integer, List<String>> entry: dbh.allActiveQuery.entrySet()) {
        out.println("Query:"+ entry.getKey() +"<br>");
        for (String val : entry.getValue()) {
            out.println(val + "<br>");
        }
        out.println("<hr>");

    }
for(Map.Entry:dbh.allActiveQuery.entrySet()){
out.println(“查询:“+entry.getKey()+”
”; for(字符串val:entry.getValue()){ out.println(val+“
”); } out.println(“
”); }
我知道我遗漏了一些愚蠢的东西,但我无法理解..请告诉我,我是javatry{DatabaseHandler dbh=new DatabaseHandler();for(Map.Entry条目:dbh.allActiveQuery.entrySet()){Integer key=Entry.getKey();out.println(“查询:+key+”
);List values=Entry.getValue();Iterator itr=values.Iterator();while(itr.hasNext()){out.println(itr.next()+“
”;}out.println(“
”;}}}}}catch(异常e){out.print(e.toString());}%>
    for(Map.Entry<Integer, List<String>> entry: dbh.allActiveQuery.entrySet()) {
        out.println("Query:"+ entry.getKey() +"<br>");
        for (String val : entry.getValue()) {
            out.println(val + "<br>");
        }
        out.println("<hr>");

    }