我试图在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来获取?
答案 0 :(得分:1)
最实用的方法可能是不存储图像,而是存储图像的路径,检索路径,然后在需要图像时通过路径获取图像。
我猜你可以将字节数组拆分成更小的数据包/数据包然后适合光标。但是,您必须管理处理块并重建图像。
您可以存储Blob的原因是插入行时不涉及Cursor。但是,通过具有大小限制的Cursor进行检索。