2017-12-25 23 views
1

나는 그들과 같이 작성해야합니다 : SQLite 쿼리는 어떻게 작성해야합니까? SQLite는에 데이터베이스에 쿼리를 작성하는 경우

String query = "SELECT Items.ItemName, Items.ItemId, Items.Checked FROM Lists JOIN Items ON Lists.Id = Items.IdList WHERE Lists.Name=?"; 

또는 같은

:
String query = "SELECT " + TABLE_ITEMS + "." + ITEM_NAME + ", " + TABLE_ITEMS + "." + ITEM_ID + ", " + TABLE_ITEMS 
       + "." + ITEM_CHECKED + " FROM " + TABLE_LISTS + " JOIN " + TABLE_ITEMS + " ON " + TABLE_LISTS 
       + "." + LIST_ID + "=" + TABLE_ITEMS + "." + ITEM_ID_LIST_FOREIGN_KEY + " WHERE " + TABLE_LISTS + "." + LIST_NAME + "=?"; 

내가 무엇을 사용해야에 어떤 원칙이 있습니까?

+0

첫 번째 방법은 ** 빠릅니다 **. 문자열 연결은 컴파일러에게 스트레스가되기 때문입니다. 그래서 일반적으로 StringBuilder를 사용하여 문자열을 연결합니다. 이것 이외의 두 메서드는 매우 동일한 쿼리 문자열을 생성합니다. –

답변

1

나는 첫 번째 옵션을 선호합니다. 예, 필드/테이블 이름을 변경하려면 많이 교체해야하지만 ...

ORM을 사용하는 대신 원시 쿼리를 작성하기로 결정하면 대체가 항상 불가피합니다.

0

두 번째 방법은 내가 일반적으로 선호하는 방법입니다. 그 이유는 다음과 같습니다.

  • 테이블의 필드 중 하나를 변경하려면 모든 쿼리를 업데이트 할 필요가 없습니다. 필드를 한 번만 업데이트하면 모든 쿼리가 올바르게 작동합니다.

  • 데이터베이스 버전을 변경할 때. 두 번째 방법에서 쉽게 업데이트 할 수 있습니다.

'원리'는 없지만 두 번째 방법을 사용하면 첫 번째 방법보다 명확한 이점이 있습니다.