2017-12-20 15 views
2

JDBI로 다중 행 삽입 문을 수행하는 방법을 알아 내려고하고 있습니다. 여기JDBI를 사용하여 단일 INSERT로 여러 행을 삽입하는 방법?

내가있어 무엇 : 잘 작동하지만 많은 INSERT 문에서 결과로 행이

@SqlBatch("INSERT INTO my_table(col1, col2) VALUES (:col1, :col2)") 
@BatchSize(size=300) 
public abstract int[] insertRows(@BindBean MyObj ... objs); 

이 ... 삽입. 나는. 두 행이 삽입되고있는 경우,이 같은 것을 결과 :

INSERT INTO my_table(col1, col2) VALUES ('a', 'b'); 
INSERT INTO my_table(col1, col2) VALUES ('c', 'd'); 

을 ... 내가 원하는 것은 다음과 같습니다 때

나는 변수 번호를 취할를하고 싶습니다
INSERT INTO my_table(col1, col2) VALUES ('a', b'), ('c', 'd'); 

개체를 입력으로 사용합니다. 나는 JDBI가 이것을 쉽게 할 수 있다고 생각하지 않는다. v3의

+0

사용중인 Jdbi 버전은 무엇입니까? – qualidafial

+0

버전 2.55를 사용 중입니다. – Eddified

답변

1

@BindBeanList 주석 당신이 원하는 무엇을 달성해야합니다

@SqlUpdate("insert into my_table (col1, col2) values <values>") 
int insertRows(@BindBeanList(propertyNames = {"col1", "col2"}) MyObj... objs); 

@SqlBatch@SqlUpdate로 대체,이 지금은 하나의 문장이기 때문에 int[] 반환 형식은 단지 int로 변경하는 것으로.