From ada9f3195a2f02d231969307b531f6dea3e0925b Mon Sep 17 00:00:00 2001 From: TOM Date: Wed, 25 Feb 2026 09:46:55 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20SQLite=20stores=20booleans=20as=201=20an?= =?UTF-8?q?d=200;=20calling=20toString()=20directly=20on=20them=20won?= =?UTF-8?q?=E2=80=99t=20work.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../android/AndroidCompiledStatement.java | 23 +++++++++++-------- 1 file changed, 14 insertions(+), 9 deletions(-) diff --git a/src/main/java/com/j256/ormlite/android/AndroidCompiledStatement.java b/src/main/java/com/j256/ormlite/android/AndroidCompiledStatement.java index df80b9d..089f355 100644 --- a/src/main/java/com/j256/ormlite/android/AndroidCompiledStatement.java +++ b/src/main/java/com/j256/ormlite/android/AndroidCompiledStatement.java @@ -133,7 +133,6 @@ public void setObject(int parameterIndex, Object obj, SqlType sqlType) throws SQ case STRING: case LONG_STRING: case DATE: - case BOOLEAN: case CHAR: case BYTE: case SHORT: @@ -147,6 +146,9 @@ public void setObject(int parameterIndex, Object obj, SqlType sqlType) throws SQ case SERIALIZABLE: args.add(parameterIndex, obj); break; + case BOOLEAN: + args.add(parameterIndex, ((Boolean) obj ? 1 : 0)); + break; case BLOB: // this is only for derby serializable case BIG_DECIMAL: @@ -251,12 +253,15 @@ private Object[] getArgArray() { } } - private String[] getStringArray() { - if (args == null) { - return NO_STRING_ARGS; - } else { - // we assume we have Strings in args - return args.toArray(new String[args.size()]); - } - } + private String[] getStringArray() { + if (args == null) { + return NO_STRING_ARGS; + } + String[] result = new String[args.size()]; + for (int i = 0; i < args.size(); i++) { + Object arg = args.get(i); + result[i] = (arg == null) ? null : arg.toString(); + } + return result; + } }