Скопируйте таблицу MS SQL Server в таблицу SQLite - PullRequest
0 голосов
/ 09 ноября 2018

Немного предыстории: я делаю приложение для Android, которое большую часть времени будет оставаться в автономном режиме. При подключении к Wi-Fi приложение должно синхронизироваться с базой данных сервера MS SQL. Бортовая база данных - SQLite. Я также очень новичок в разработке Java / Android, поэтому я прошу прощения, если я где-то упускаю очевидное.

Я могу довольно хорошо выполнять транзакции с сервером MS SQL, используя драйвер JTDS, однако, когда я запрашиваю сервер MS SQL, я получаю объект ResultSet, который я должен циклически проходить по одной строке за раз. Есть ли инструмент / метод, который может просто вставить все строки из ResultSet в таблицу базы данных SQLite?

В настоящее время я использую стандарт:

ArrayList<ArrayList<String>> table = new ArrayList<>(); // a list of lists to represent a table
ArrayList<String> row = new ArrayList<>(); // a list to represent a row of the table

Class.forName("net.sourceforge.jtds.jdbc.Driver"); 

conn = DriverManager.getConnection(connectionString);
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery(query);
ResultSetMetaData meta = rs.getMetaData();

while (rs.next())
{
     row = new ArrayList<>();

     for (int i = 1; i < meta.getColumnCount() + 1; i++) // load data into List
     {
         row.add(rs.getString(i));
     }

     table.add(row);
 }

Отсюда я собирался пройтись по списку и добавить каждую строку одну за другой в таблицу базы данных SQLite. Это кажется мне неэффективным. Просто искал лучший способ скопировать таблицу из MS SQL Server в SQLite на устройстве Android.

...