2016-10-18 4 views
-5

나는 몇 가지 항목을 표시리스트 뷰를 가지고, 각 항목은 카테고리 ID라는 속성이 속성은 내가 열 각 항목에 필요한목록보기의 각 항목에 SQLite는 데이터베이스에 액세스

내 데이터베이스 taples 중 하나와 관련이 있습니다 포함 데이터베이스는 다음 ID = 항목 범주 ID와리스트 뷰는 기록에 의해 기록을 읽을 데이터베이스를 열 매우 무거운

에 데이터를 표시 할 경우 카테고리 객체를 얻기 위해 쿼리를 만들

할 수있는 방법이 문제를 해결하는 사람의 조언 여러 번 데이터베이스를 열지 않고도?

감사합니다.

+0

* 데이터베이스를 여러 번 열지 않고도이 문제를 해결할 수있는 방법을 조언 해 줄 수 있습니까? * 분명히 한 번만 열어보십시오. 행렬 수가 많으면 저장하기 위해 일부 연관 컬렉션 (키를 사용하여 ID)을 사용하십시오. 또는 범주 이름 만 필요하면 JOIN (eventualy with group_concat)을 사용하십시오. – Selvin

답변

0

데이터베이스를 한 번 빨간색으로 표시 할 수 있습니다. 동시에 모든 데이터를 가져옵니다. 돌려 주어진 배열로부터 목적의 데이터를 읽어들입니다.

//returns data from DB 
String[] array = getInfoDataBase(); 

//array example 

array = ["id1", "name1", "data2","id2", "name2", "data2", ....] 

for (int i = 0; i < array.length; i = i+3) { 
    if (array[i] == //desired id) { 
      //get your data from the array like name1, data1 
      break; // to stop the fro loop 
    } 
} 
0

이 목적으로 JOINS을 사용할 수 있습니다.

SELECT * FROM item INNER JOIN category ON item.categoryId = category.id WHERE item.id in (id1, id2, id3) 

(id1, id2, id3)을 테이블의 항목 ID로 바꿔야합니다.

관련 문제