2012-05-04 82 views

回答

1

你試過

ResultSetMetaData rsmd = rs.getMetaData(); 
String name = rsmd.getColumnName(1); 
+0

謝謝,難道就沒有別的辦法,我可以不用連接到數據庫? – MHAbdulkareem

+0

你需要解析queryString,分割, – Satya

+0

好吧,我是新來的這些。你能給我一個我的案例的正則表達式格式。謝謝 – MHAbdulkareem

1

雖然有點令人費解這既適用於在問題中列出的查詢:

String query = "Select uname AS name, hgt AS height, wgt AS weight from table1"; 
Pattern p = Pattern.compile("\\s*\\w+,");Pattern p1 = Pattern.compile("\\s+\\w+\\s+from"); 
Matcher m = p.matcher(query);Matcher m1=p1.matcher(query); 
String colsOnly=""; 
while(m.find()){colsOnly+=(m.group().trim());} 
while(m1.find()){colsOnly+=(m1.group().substring(0,m1.group().length()-4).trim());} 
String[] cols = colsOnly.split(","); 
+0

謝謝爲我工作。 –

0
String str = "select dept,empid as eid , ename as name,deptname,deptid as department_id from emp"; 

    String[] arr = str.split("as"); 
    StringTokenizer str1 = new StringTokenizer(str, " ,"); 
    ArrayList<String> arrStr = new ArrayList<>(); 
    while (str1.hasMoreTokens()) 
    { 
     String strT = str1.nextToken().toString();   
     arrStr.add(strT); 
    }  
    for (int i = 0; i < arrStr.size(); i++) 
    { 
     if (arrStr.get(i).equals("as")) 
     { 
      System.out.println("Orignal\t" + arrStr.get(i - 1)); 
      System.out.println("Alias\t" + arrStr.get(i + 1)); 
     } 
    } 

輸出

一部開拓創新EMPID

別名EID

一部開拓創新的ename

別名

一部開拓創新DEPTID

別名部門標識