Mohl bych se rozhodnout pro použití LOAD DATA příkaz z MySQL namísto použití Java:
LOAD DATA LOCAL INFILE '/path/to/your/file.csv' INTO TABLE table;
Tím byste se vyhnuli velké režii, kterou v současnosti máte, za předpokladu, že zpracováváte každý řádek před jeho vložením do MySQL.
Můžete spustit LOAD DATA výpis z Javy pomocí raw JDBC.