[java] Android 및 SQLite를 사용하여 데이터베이스에서 부울 가져 오기

Android 의 SQLite 데이터베이스 에서 부울 필드 값을 얻는 방법은 무엇입니까?

나는 보통 사용 getString(), getInt()내 필드의 값을 얻기 위해, 등,하지만이있을 것 같지 않습니다 getBoolean()방법.



답변

그것은:

boolean value = cursor.getInt(boolean_column_index) > 0;


답변

SQLite에는 bool 데이터 유형이 없습니다. 그 효과를 얻으려면 0 또는 1로 고정하는 정수를 사용하십시오. SQLite 3.0데이터 유형 참조참조 하십시오 .


답변

boolean value = (cursor.getInt(boolean_column_index) == 1);


답변

여기에있는 대부분의 답변은 NumberFormatExceptions 또는 int를 저장 한 열이 null을 보유 할 수있는 경우 “null, int 유형에 대해 연산자가 정의되지 않았습니다”가 발생할 수 있습니다. 이 작업을 수행하는 적절한 방법은

Boolean.parseBoolean(cursor.getString(booleanColumnIndex));`

현재는 0 또는 1 대신 “true”및 “false”문자열을 저장하는 것으로 제한되어 있습니다.


답변

Ormlite Cursor 에서 찾은 구현 은 다른 답변 중 어느 것도 수행하지 않는 Null을 확인합니다.

   public boolean getBoolean(int columnIndex) {
        if (cursor.isNull(columnIndex) || cursor.getShort(columnIndex) == 0) {
            return false;
        } else {
            return true;
        }
    }


답변

당신은 또한 사용할 수 있습니다

boolean value =cursor.getString(boolean_column_index).equals("True");


답변

다른 옵션

boolean value = (cursor.getString(column_index)).equals("1");