JavaEE+MSSQL 2008数据库开发成绩管理系统遇到以下问题,求解决方案:有一个存储过程,实现的是查询成绩,通过传入参数来实现控制成绩的类型(也就是控制要查什么成绩,
例如期末,平时,期中等),但是这个存储过程里的语句是动态的行列转换语句,我不知道每个参数穿
进去后返回的结果有多少个字段,我需要怎么遍历这样的结果,求指教。急急急

解决方案 »

  1.   

    看你是否用数据访问组件,比如说如果你用了Hibernate,那么可以将输出类型设置为 Map,那么所得到结果集(List)中的每个元素(也即结果集行row),都是Map类型的,包含所有字段和值。如果打算自己直接操作ResultSet,也不复杂,2个关注点:
    1、可以直接用字段顺序获取值,比如: rs.getString(1); rs.getString(2);
    2、可以获取所有字段信息,ResultSetMetaData meta = rs.getMetaData(); 然后可以 meta.getColumnCount() 或者 meta.getColumnName()简单吧?
      

  2.   

    可以对不同的成绩类型返回不同的结果集(ResultSet)。
    http://my.oschina.net/wstone/blog/9579?from=rss
    不过这样做挺难维护的。个人建议做成3个不同的成绩分开处理。
      

  3.   

    唉,都懒的自己Google或者查API啊,尝试运行下这段代码吧:        ResultSet rs = xxxxoooo;
            ResultSetMetaData meta = rs.getMetaData();
            while (rs.next()) {
                for (int i = 1; i <= meta.getColumnCount(); i++) {
                    System.out.print(meta.getColumnName(i) + ": " + rs.getObject(i) + "; ");
                }
                System.out.println();
            }