안드로이드 개발 질문/답변
(글 수 45,052)
SQLiteQueryBuilder 에 대해서 궁금합니다.
------------------------------------------------------------------------------------------ 하단 소스 코드입니다
// SQL Query
SQLiteQueryBuilder queryBuilder = new SQLiteQueryBuilder();
queryBuilder.setTables(Pets.PETS_TABLE_NAME +", " +PetType.PETTYPE_TABLE_NAME);
queryBuilder.appendWhere(Pets.PETS_TABLE_NAME + "." + Pets.PET_TYPE_ID + "=" + PetType.PETTYPE_TABLE_NAME + "." + PetType._ID);
------------------------------------------------------------------------------------------ 하단 소스 코드입니다
Pets.PETS_TABLE_NAME ->
{ Pets 함수내에서 -> public static final String PETS_TABLE_NAME = "table_pets"; 입니다. 다른것들도 마찬가지이구요..
여기서 궁금한곳은 쿼리빌더가 복잡한 쿼리문이나 지금처럼 테이블 조인해서 쿼리문 날릴때 좋다고 해서
예제문을 따라서 해보고 있는데요
쿼리문이 이해가 잘 되지 않고, 에스큐엘라이트쿼리빌드도 잘 이해가 되지 않아서 질문드립니다.
queryBuilder.setTables(Pets.PETS_TABLE_NAME +", " +PetType.PETTYPE_TABLE_NAME);
queryBuilder.appendWhere(Pets.PETS_TABLE_NAME + "." + Pets.PET_TYPE_ID + "=" + PetType.PETTYPE_TABLE_NAME + "." + PetType._ID);
--------------- setTable 이게 어떤건지 이해가 잘안되구요
--------------- appendwhere 이부분도 이해가 잘 가지 않습니다.
이말이 곧 테이블두개에서 필드 하나씩 이너조인한다는 말인가요? ^^;;;
------------------------------------------------------------------------------------------ 하단 소스 코드입니다
// SQL Query
SQLiteQueryBuilder queryBuilder = new SQLiteQueryBuilder();
queryBuilder.setTables(Pets.PETS_TABLE_NAME +", " +PetType.PETTYPE_TABLE_NAME);
queryBuilder.appendWhere(Pets.PETS_TABLE_NAME + "." + Pets.PET_TYPE_ID + "=" + PetType.PETTYPE_TABLE_NAME + "." + PetType._ID);
------------------------------------------------------------------------------------------ 하단 소스 코드입니다
Pets.PETS_TABLE_NAME ->
{ Pets 함수내에서 -> public static final String PETS_TABLE_NAME = "table_pets"; 입니다. 다른것들도 마찬가지이구요..
여기서 궁금한곳은 쿼리빌더가 복잡한 쿼리문이나 지금처럼 테이블 조인해서 쿼리문 날릴때 좋다고 해서
예제문을 따라서 해보고 있는데요
쿼리문이 이해가 잘 되지 않고, 에스큐엘라이트쿼리빌드도 잘 이해가 되지 않아서 질문드립니다.
queryBuilder.setTables(Pets.PETS_TABLE_NAME +", " +PetType.PETTYPE_TABLE_NAME);
queryBuilder.appendWhere(Pets.PETS_TABLE_NAME + "." + Pets.PET_TYPE_ID + "=" + PetType.PETTYPE_TABLE_NAME + "." + PetType._ID);
--------------- setTable 이게 어떤건지 이해가 잘안되구요
--------------- appendwhere 이부분도 이해가 잘 가지 않습니다.
이말이 곧 테이블두개에서 필드 하나씩 이너조인한다는 말인가요? ^^;;;
2010.02.01 10:58:25
책에 나오는 코드를 보고 이야기 하신거 같은데요..
queryBuilder.setTables(Pets.PETS_TABLE_NAME +", " +PetType.PETTYPE_TABLE_NAME); 는 queryBuilder 의 테이블 명을 set 해주는 용으로 뒤에 인자는 책에서 보면 따로 baseColunm 을 상속받은 class의 static final String 값 입니다.(그니까 변하면 안될 테이블명과 colunm 명을 설정해놓은 class)
queryBuilder.appendWhere(Pets.PETS_TABLE_NAME + "." + Pets.PET_TYPE_ID + "=" + PetType.PETTYPE_TABLE_NAME + "." + PetType._ID);
이부분은 쿼리에 where 절 설정인데요 이거 2개 이상의 테이블에서 검색 하는 방법 인거 같습니다.
( 저두 공부하면서 ... sqlite 코드가 제가 알고있는 jdbc나 jndi 와 달리 너무 복잡함을 느껴서 맞는지 아닌지 모르겠네요 ㅎㅎ;;)
그러니까
책에 보시면 처음에 table을 2개 만들거든요 거기에 ID 값이
Pets.PETS_TABLE_NAME + "." + Pets.PET_TYPE_ID와 PetType.PETTYPE_TABLE_NAME + "." + PetType._ID 이것이 같아야 한다는 조건을 설정해준겁니다.