sqlite генерация данных в базу на java

206
12 марта 2019, 02:30

дана бд с таблицей

create table entry (field Long)

после подключения к бд необходимо сгенерировать данные в базу от 1 до скажем 1000000

for (int i = 0; i < n; i++) {
            try (PreparedStatement st = conn.prepareStatement("INSERT INTO entry VALUES (?)")) {
                st.setInt(1, 1 + i);
                st.executeUpdate();

и вот такая генерация работает очень медленно я добавил строчку System.out.println(i); и долго наблюдаю в консоле 4103 4104 4105 4106 4107

пока писал вопрос дошло только до сюда можно как-то ускорить процесс?

Answer 1

Есть несколько способов решить эту проблему.

  1. Начать транзакцию до цикла и зафиксировать после

    conn.setAutoCommit(false);
    for (int i = 0; i < n; i++) {
        ...
    }
    conn.commit();
  2. Использовать пакетные операции

    try (PreparedStatement st = conn.prepareStatement("INSERT INTO entry VALUES (?)")) {
        for (int i = 0; i < n; i++) {
            st.setInt(1, 1 + i);
            st.addBatch();
        }
        st.executeBatch();
    }
  3. Сгенерировать данные не в java-коде, а SQL-запросом

    insert into entry select * from generate_series(0, 1000000, 1);
READ ALSO
Как сделать такую разметку с разным количеством слов в строке?

Как сделать такую разметку с разным количеством слов в строке?

Подскажите, пожалуйста, как сделать, чтобы слова из массива выводились в таком виде: то есть, чтобы на строчку влезало разное количество слов,...

176
Скачивание файла в Service/IntentService и отображение процесса скачивания

Скачивание файла в Service/IntentService и отображение процесса скачивания

У меня есть плеер, в котором можно скачивать песниДля скачивания на данный момент я использую IntentService, который выглядит вот так:

158
MySQL Could not create connection to database server

MySQL Could not create connection to database server

До перезагрузки компьютера всё работало отличноПосле перезагрузки netbeans пишет ошибку при компиляции проекта

291
Передача запроса сервлету и jsp

Передача запроса сервлету и jsp

Что-то вообще заплутался,ребятаПомогите,пожалуйста

177