扩展SQLiteStatement,是否有可用的测试包装类?

时间:2014-01-22 13:10:57

标签: java android sqlite

该类无法继承最终类SQLiteStatement无法扩展。

这与java不支持扩展方法的事实一起带来了我。 似乎没有任何流畅的方法来为该类做扩展。

我没有时间编写和测试包装类SQLiteStatement的类。我因此问这里是否有一个值得信赖的包装类?

我现在所做的是一个带有方法的类,我将对SQLiteStatement的引用和我想要添加到SQLiteStatement的值发送,但这并不像扩展类那样顺利。

1 个答案:

答案 0 :(得分:1)

由于缺乏更好的替代品,或者如果没有其他人回答我的问题,这将是我的解决方案。

这是一个类的开头,其中包含了迄今为止的方法,以避免重复的null检查语句等。

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);
    }
}