0
SQL DB有110個表,每個表有不同的列名。我必須遍歷每個表並獲取數據,以便我可以寫入XML文件。如何使用Java在Sql Server中循環所有表並提取數據
爲此,我創建了一個名爲「MasterList」的新表,其中包含所有110個表名。
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文件。
請幫幫我。
感謝 拉姆