Вставить в таблицу H2 всю строку из jdbc resultSet - PullRequest
1 голос
/ 26 сентября 2019

У меня есть база данных MySQL и база данных H2.У меня есть результирующий набор из SELECT to MySQL.

Теперь я хочу вставить каждую строку этого результирующего набора в таблицу H2 db

Я пробовал это.

// Return records filtered
ResultSet filter = stmt.executeQuery(query);
// Create table filterName in H2
ResultSetMetaData rsMetaData = filter.getMetaData();
query = "CREATE TABLE " + filterName + "(";
ArrayList<String> cols = new ArrayList<String>();

for(int i = 1; i < rsMetaData.getColumnCount(); i++) {
   cols.add(rsMetaData.getColumnName(i));
   query = query + rsMetaData.getColumnLabel(i) + " " + 
   rsMetaData.getColumnTypeName(i) + "(" + rsMetaData.getColumnDisplaySize(i) + ") NOT NULL, ";
}

query = query + ");";
String queryDel = "DROP TABLE IF EXISTS " + filterName + ";";
stmtH2.executeUpdate(queryDel);
stmtH2.executeUpdate(query);
query = "INSERT INTO " + filterName + " VALUES (";

// Insert into H2 table
while(filter.next() ) {

   for(int i = 0; i < cols.size(); i++) {

      if(i != cols.size()-1)
     query = query + filter.getString(i+1) + ", ";
      else
     query = query + filter.getString(i+1) + ")";

   }
}

Это работает, но когда количество строк увеличивается, это очень медленно.Есть ли другой способ вставить каждую строку в таблицу H2 db?

...