如题@_@
要求:尽可能短的代码!
最好是一行!!分在另外一个帖子:
http://community.csdn.net/Expert/topic/4431/4431042.xml?temp=.5004694
一天了,没人能够回答。

解决方案 »

  1.   

    http://community.csdn.net/Expert/topic/4431/4431438.xml?temp=.1810419
    转一个我的问题发在数据库了
    那边没人回答
    顺便顶一下这个帖子
      

  2.   

    我感觉ResultSet 是个集合,转换成一个数组应该很容易啊
    结果看了好几遍JAVA的API也没找到合适的方法。
    不行了,看来我小瞧了啊。
      

  3.   

    to:xuvvb() 
    思维很活跃,但是情况不允许。
    还是非常感谢!!1
      

  4.   

    找JAVA的API,跟自己写个共通的方法当做API有什么不一样,写出来了,以后的项目都可以重用.
      

  5.   

    道理是对的,但是。。现在的问题是如果不允许写呢我现在想知道的也是java有没有这样一种方法。。
      

  6.   

    允许写一行代码但不允许写10-20行代码,什么道理?
    如果lz一定要这个转换代码,我回家了可以发一个上来,太简单了,我是JAVA的设计者,我也不会专门提供这种API的
      

  7.   

    楼上误会我的意思了,我说的是尽可能短啊,能一行是最好的。
    因为我是刚开始学习JAVA,对API还不是很了解阿。
    我觉得像下面这样做得话不太合适
    public String[][] selectExec(String sql)
        {
            try
            {
                ResultSet rs1 = stmt.executeQuery(sql);
                ResultSetMetaData  rsmd = rs1.getMetaData();
                int col = rsmd.getColumnCount();
                int row = 0;
                while(rs1.next())
                {
                    row++;
                }
                String[][] result = new String[row][col];
                ResultSet rs2 = stmt.executeQuery(sql);
                while(rs2.next())
                {
                    int i;
                    for(i = 0 ; i < row; i++)
                    {
                        int j;
                    for(j = 0; j < col; j++)
                        {
                            result[i][j] = rs2.getString(j);
                        }
                    }
                }
                return result;
            }
            catch(SQLException  e)
            {
                e.printStackTrace();
                return null;
            }
        }
    太麻烦了阿~~~你不觉得吗?只是把一个集合(这个集合本身很可能是有序的)里的东西放到一个二位数组里,就写了这么多行代码阿!
      

  8.   

    public String[][] viewTable(String[] sql,String where,String order,int asc) {
        String or="";
           open();//打开连接
           this.isExist(where);  //取得where的记录数
           switch(asc){//排序
              case 0:or="ASC";break;
              case 1:or="DESC";break;
              }
             String sqll ="select ";
        
        //filter model  -->许多方法中都用了这个模型,看看能不能把它抽成独立的方法
          for(int i=0;i<sql.length;i++){
           if(i!=sql.length-1){
       sqll = sqll+sql[i]+",";
       }else{
       if(where.length()==0&&order.length()==0){//where与order的判定
       sqll = sqll+sql[i]+" from "+tableName;
       }else if(where.length()==0&&order.length()!=0){
       sqll = sqll+sql[i]+" from "+tableName+" order by "+order+" "+ or;
       }else if(where.length()!=0&&order.length()==0){
           sqll = sqll+sql[i]+" from "+tableName+" where "+where;
            }else{
           sqll = sqll+sql[i]+" from "+tableName+" where "+where+" order by "+order+" "+ or;
       }
       
        }
       }
       //<--!fm end
        
        String[][] finall=new String[this.rscnts][colcnt];//开一个2维数组,存储指定表的数据此时数组长度为[0,0]
      
         try{
       open();
         Statement stmt = connect.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE);
          ResultSet rs = stmt.executeQuery(sqll);
          colcnt=rs.getMetaData().getColumnCount();//其实用rsname.length就成了,不知道这个对性能有没有影响
          finall=new String[this.rscnts][colcnt];//重新指定数组长度,因为是局部变量所以只能这样,否则会出现NPE
          rsname= new String[colcnt];//同理, rsname也需要重新指定这个方法里条件的记录数
          int keep=0;
          while(rs.next()){//获得所有记录,存进数组
            for(int j=0;j<colcnt;j++){
               finall[keep][j]=rs.getString(j+1);
               rsname[j]=rs.getMetaData().getColumnName(j+1);
               //System.out.print(rsname[j]+"\t");
             }
            keep++;
           }
           stmt.close();
           connect.close();
          
        }
        catch (SQLException e) {System.out.println(sqll+" @viewTable方法"+e);}
        return finall;
      }