[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");