如何在android studio中使用sqlite4java获取超过2mb的blob?

时间:2018-02-05 03:12:50

标签: android sqlite

我试图在android中找到关于使用sqlite4java的任何参考,但教程看起来很吝啬,

我已尝试使用此代码,但没有运气

public void test4java(){
        SQLiteConnection sqLiteConnection=null;
        SQLiteStatement sqLiteStatement=null;
        Context context;
        try
        {
            File databaseFile = context.getDatabasePath("SendingData.db");
            sqLiteConnection=new SQLiteConnection(databaseFile);
            sqLiteConnection.open();
            sqLiteStatement=sqLiteConnection.prepare("SELECT * from Api");
            sqLiteStatement.bind(1, id);
            sqLiteStatement.step();
            byte[] blob=sqLiteStatement.columnBlob(0);
            Log.i("blob sqlite4java", Arrays.toString(blob));
        } catch (SQLiteException e) {
            e.printStackTrace();
        } finally
        {
            if(sqLiteStatement!=null)
                sqLiteStatement.dispose();
            if(sqLiteConnection!=null)
                sqLiteConnection.dispose();
        }
    }

还有另外一种方法可以在sqlite中获取超过2mb的blob吗?

我只是想为什么sqlite可以存储blob直到1GB,但需要少于2MB来获取?

1 个答案:

答案 0 :(得分:1)

最实用的方法可能是不存储图像,而是存储图像的路径,检索路径,然后在需要图像时通过路径获取图像。

我猜你可以将字节数组拆分成更小的数据包/数据包然后适合光标。但是,您必须管理处理块并重建图像。

您可以存储Blob的原因是插入行时不涉及Cursor。但是,通过具有大小限制的Cursor进行检索。