0
Я написал java-программу о передаче файла txt в sqlite db, но требуется больше времени, когда около 83000 данных (200 данных занимают около 1 минуты). Как увеличить скорость передачи. Я попытался добавления ArrayList, чем получить, но его не изменитьJava txt to sqlite data data transfer как можно быстрее
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.Statement;
public class NewMain {
public static Connection connect() {
Connection conn = null;
try {
String url1 = "jdbc:sqlite:c:/Users/sozdemir/Desktop/sozluk.db";
conn = DriverManager.getConnection(url1);
String sql1 = "CREATE TABLE IF NOT EXISTS KELIMELER (Kelime PRIMARYKEY NOT NULL);";
Statement s = conn.createStatement();
s.execute(sql1);
} catch (Exception e) {
System.out.println(e.getMessage());
}
return conn;
}
public void Verigir(String kelime){
String sql = "INSERT INTO KELIMELER (kelime) VALUES(?)";
try (Connection conn = this.connect();
PreparedStatement statement = conn.prepareStatement(sql)
){
statement.setString(1, kelime);
statement.executeUpdate();
} catch (Exception e) {
}
}
public static void main(String[] args) throws IOException {
/* connect();*/
NewMain app = new NewMain();
String kelime = null;
BufferedReader in = null;
int adet;
adet= 0;
in = new BufferedReader(new FileReader("C://Users//sozdemir//Desktop//ozluk.txt"));
while ((kelime=in.readLine()) !=null) {
app.Verigir(kelime);
adet +=1;
System.out.println(81742 - adet);
}
}
}
Проделать любое профилирование, чтобы увидеть, где происходит замедление? возможно, ваш код работает быстро и быстро занимает 0,000001% от времени выполнения, а другой 99.999999% ожидает sqlite. –
Заключение в sqlite часть сокращает время, но я не знаю, как я могу увеличить –
не подготавливать заявление каждый раз, то. одна из ОСНОВНЫХ точек инструкции make заключается в том, что служебные данные синтаксического анализа/компиляции выполняются только один раз, тогда вы просто заполняете заполнители столько раз, сколько необходимо. –