zapis paczkami + jdbc

0

hej, mam nastepujaca zagwostke:

musze robic zapis do bazy (postgres) uzywajac JDBC (koniecznie ma tak byc) i PreparedStatement. zapis ma byc wykonywany na paczkach, czyli np uzbieram 10 rekordow do wstawienia do bazy to wtedy wstawiam, a nie jeden po drugim.

czy da sie tak zrobic (spotkalam sie w innym jezyku ze sie da, stad moje pytanie, aczkolwiek niepewne) ze przygotuje sobie takie tablice z wartosciami i dam jednego inserta? Podam przyklad:

 tabela test:
id| imie | nazwisko

w kodzie mam juz wartosci dla 10 wpisow (czyli 10 razy po imie i nazwisko - id jest serial, samo sie pilnuje i zwieksza).
i teraz - zastanawiam sie skoro ma byc zapis paczki (jako 10 rekordow), nie po jednym (tzn wpierw kod czeka az sie te 10 wartosci uzbiera i wtedy robi zapis) to jak mam to zrobic zeby bylo poprawnie? przygotowac 10 prepareStatementow i w petli zrobic na nich executeQuery()? a moze sie da jakos podac do prepared statement tablice z wartosciami? czy jesli moj prepStatement wygladaly:
prepStatement = connection.prepareStatement("INSERT INTO test(imie, nazwisko) VALUES ?,?")

to teraz w miejsce znakow zapytania podalabym:
imieArray - gdzie tablica ta zawiera 10 imion
nazwiskoArray - zawiera 10 nazwisk

i moze 'lyknalby' to w jednym executeQuery? czy czegos takeigo nie da sie zrobic i musze zrobic petle i 10 razy zapuscic? a moze macie inny pomysl?

      bede wdzieczna za wszelkie sugestie

pzdr,
misty

0

Zdaje się, że do tego służą metody addBatch i executeBatch
tutaj masz przykład: http://www.java2s.com/Code/Java/Database-SQL-JDBC/DemoPreparedStatementAddBatchMySQL.htm

0

A tylko, że nie można tam podać całych tablic, każdy wpis musi być przygotowany oddzielnie.

0

super!
dzieki wielkie i pzdr :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1