2012-05-04 83 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

别名部门标识