缺乏更好的替代方案,或者如果没有其他人回答我的问题,这将是我的解决方案。
这是一类与方法开始这一步,以避免重复空检查报表等
public class SQLiteStatementExtension {
public static void BindNullable(SQLiteStatement statement, int index, String value)
{
if(value == null){
statement.bindNull(index);
} else {
statement.bindString(index, value);
}
}
public static void BindNullable(SQLiteStatement statement, int index, Calendar value)
{
if(value == null){
statement.bindNull(index);
} else {
statement.bindLong(index, value.getTimeInMillis());
}
}
public static void BindNullable(SQLiteStatement statement, int index, byte[] value)
{
if(value == null){
statement.bindNull(index);
} else {
statement.bindBlob(index, value);
}
}
public static void Bind(SQLiteStatement satement, int index, boolean value) {
satement.bindLong(index, value ? 1 : 0);
}
}
Android的SQLite的API有许多设计问题,它不是非常可扩展。但是,它是开源的,请考虑从AOSP分叉是否是您的选择。 – laalto
是的,我想过,但我想我需要密切关注它的新版本并保持它。 – Johan