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