1. A operação normal é inserir lotes diretamente de uma só vez, neste caso, se a quantidade de dados for extremamente grande, ultrapassará o limite máximo de pacotes de dados do banco de dados.
2. Inserir um item por vez em um loop manterá o IO do disco em um nível alto, o que não é aconselhável.
3. A inserção dividida e em loop para grandes quantidades de dados é mais preferível. Geralmente, 1.000 dados são divididos em um segmento.
public static void main(String[] args) {
ArrayList<Object> objects = new ArrayList<>();
for(int i=0;i<1000000;i++){
objects.add(i);
if(objects.size()%1000==0){
System.out.println(objects.toString());
objects.clear();
}
}
if(objects.size()>0){
System.out.println(objects.toString());
}
}