2013-04-18 4 views
2

JDBI (JDBC 래퍼)를 사용하여 PostgreSQL 데이터베이스에 액세스하는 Java 프로그램이 있습니다. 열 중 하나는 배열 데이터 형식이 (mycolumn integer[])입니다.JDBI를 사용하여 Postgres 배열 데이터 얻기

내 매퍼 클래스에서 사용하는 도대체 무엇입니까? 나는 resultSet.getArray("mycolumn")이 옳은 일이라고 생각했지만, 반환 된 객체 인 java.sql.Array에서 데이터를 가져 오는 방법을 잘 모르겠습니다.

이 작업을 수행하는 방법에 대한 힌트 또는 좋은 링크가 있습니까?

+1

힌트 : http://docs.oracle.com/javase/6/docs/api/java/sql/Array.html,'Array.getArray()'. –

+0

그것은 Object를 반환하지만 ... 어떤 타입으로 변환 할 지 모르며, 문서가 더 명확하지 않다. – Amasuriel

+0

기본 배열 유형은 데이터베이스 필드 유형에 의해 결정됩니다. JDBC 메타 데이터 API에서 세부 사항을 얻을 수 있습니다. 또는 객체에 대해 getClass()를 호출하고 그 방법으로 검사합니다. –

답변

1
 Array array = resultSet.getArray("mycolumn"); 
     return nonNull(array) ? (Integer[])array.getArray() : null ; 
+0

'@ MapResultAsBean'이 사용할 수 있도록 코드를 어떻게 등록합니까? – Jorn

+0

이 문제는 @MapResultAsBean을 사용할 수 없습니다. 우리는 매퍼를 쓸 필요가있다 – Manikandan

+0

나는'List '필드 (또는'List'가 가능하지 않다면'int []')를 가진 Bean을 원하고 Bean 매퍼가 그 필드를'ResultSet '. 필자는 기존 매퍼를 가져 와서 기존 코드에 유형을 추가함으로써 실제로이 작업을 수행했지만, 기존 매퍼가 확장 가능하다면 정말 좋을 것입니다. – Jorn

관련 문제