2017-05-04 6 views
1

In meiner Steuerung erhalte ich eine Anfrage, die 2 Parameter enthält: Einer ist ein ganzzahliger Wert, ein anderer ist eine Liste.Masseneinfügung mit NamedParameterJdbcTemplate

{"store_id":12,"product":[[1,10],[2,20],[3,30]]} 

Und ich mag einfügen wie

12,1,10 
12,2,20 
12,3,30 

I NamedParameterJdbcTemplate für db Anfragen verwenden. Ich habe versucht mit Batchquery, aber es ist zeitaufwendig. Gibt es eine andere Möglichkeit, bessere Leistung zu erzielen?

Antwort

1

Sie können nur eine SQl insert-Anweisung generieren. Gefällt Ihnen dieses

INSERT INTO MyTable 
(Column1, Column2, Column3) 
VALUES 
(:Value1_1, :Value1_2, :Value1_3), 
(:Value2_1, :Value2_2, :Value2_3), 
(:Value3_1, :Value3_2, :Value3_3), 
; 

Der VALUES Abschnitt ist dynamisch, wie viele Zeilen von Werten einzufügen, wie Sie benötigen. Alle Parameter können entsprechend platziert werden, um im NamedParameterJdbcTemplate verwendet zu werden.

Ich habe es nicht mit Millionen von Zeilen versucht, aber für eine angemessene Menge von Zeilen sollte es funktionieren.

Verwandte Themen