2012-03-27 2 views
0

SQL DB에는 110 개의 테이블이 있으며 각 테이블마다 다른 열 이름이 있습니다. 각 테이블을 반복하고 데이터를 가져 와서 XML 파일에 쓸 수 있어야합니다.Java를 사용하여 Sql Server의 모든 테이블을 반복하고 데이터를 추출하는 방법

이를 위해 110 개의 테이블 이름을 모두 포함하는 "MasterList"라는 새 테이블을 만들었습니다.

try{ 
     // Connection for SQL Server. 
     Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); 
     String url = "jdbc:sqlserver://"+strDBServer+":1433;DatabaseName=" 
       + strDBName + ";" + 
       "User="+strDBUser+";Password="+strDBPassword+";"; 
     Connection conn = DriverManager.getConnection(url); 

     if (conn != null) { 
      System.out.println("Connection Successful!"); 
     } 

     //XML Transform 
     TransformerFactory tFactory = TransformerFactory.newInstance(); 

     //Create a Statement object 
     Statement sql_stmt = conn.createStatement(); 

     //Get List of all the tables present from Master table. 
     ResultSet rs = sql_stmt.executeQuery("SELECT TableName, Order FROM " 
       + strDBName + ".[dbo].Master"); 


     while (rs.next()) 
     {    
      //Create a Statement object 
      Statement sql_stmt_1 = conn.createStatement(); 

      String strTableName=rs.getString(1).trim(); 
      int intOrder = rs.getInt(2); 

      hsMapTablesFromDB.put(strTableName,intOrder); 


      System.out.println("Hashmap --> " + hsMapTablesFromDB); 

      ResultSet rs_1 = sql_stmt_1.executeQuery("SELECT Name, LevelOfExistence, UniqueId FROM " 
       + strDBName + ".[dbo]." + strTableName); 

      String strName = rs_1.getString(1).trim(); 
      String strUnique = rs_1.getString(3).trim(); 
      hsMapDataFromIndTable.put(strName,strUnique); 

      System.out.println("hsMapDataFromIndTable" + hsMapDataFromIndTable); 

     } 
    } 
    catch(Exception e){ 
     e.printStackTrace(); 
    } 

각 테이블의 열 이름은 내가 테이블에서 각 레코드를 일단, 내가 가진 것을 삽입 할 수 있도록, "sql_stmt_1.executeQuery"의 해당 열 이름을 얻는 방법, 다를 수있다.

현명한 모든 110 개의 테이블 데이터는 XML 파일에 삽입되어야합니다.

도와주세요.

감사 Ramm

답변

0

당신이 그 다음 질의에 그 열 이름을 추가하려면 테이블의 모든 열 이름을 얻을 것이다이 쿼리를 사용하여 각 테이블

select column_name from information_schema.columns 
where table_name = 'YourTableName' //this will your iterated loop table name. 

에 열 이름에 대한 다음 쿼리를 사용하십시오 표.

그런 다음 XML을 업데이트하십시오.

관련 문제