标签: sqliteopenhelper

在SQLiteOpenHelper中使用onCreate获取上下文

在我的Android应用程序中:如何在SQLiteOpenHelper的onCreate方法中访问Context?

android sqliteopenhelper

8
推荐指数
1
解决办法
4016
查看次数

如何将音频/视频文件存储到 android 中的 SQLite 数据库中。?

我是开发新手,通过将图像转换为字节数组并将其存储到 BLOB 中的 SQLite 数据库(在下面的代码中找到),我成功地将图像存储到数据库中。但是我不知道如何将音频/视频存储到数据库中,任何人都可以帮助我 PLZ ...

 public void getImage(View view){
    Intent intent = new Intent();
    intent.setAction(Intent.ACTION_GET_CONTENT);
    intent.setType("image/* video/*");
    startActivityForResult(Intent.createChooser(intent, "select picture"), 1);

}

public void onActivityResult(int requestCode, int resultCode, Intent data){
    if(resultCode == RESULT_OK){
        Uri imageUri = data.getData();
        String imagePath = getPath(imageUri);

        image1.setVisibility(View.VISIBLE);

        image1.setImageURI(imageUri);
        Bitmap bitmap = BitmapFactory.decodeFile(imagePath);
        Toast.makeText(getApplicationContext(), ""+bitmap, Toast.LENGTH_SHORT).show();
        ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
        bitmap.compress(Bitmap.CompressFormat.PNG, 100, byteArrayOutputStream);
        img = byteArrayOutputStream.toByteArray();
    }
}

 public String getPath(Uri uri) {
    String[] projection = { MediaStore.Images.Media.DATA };
    Cursor cursor = managedQuery(uri, …
Run Code Online (Sandbox Code Playgroud)

sqlite android sqliteopenhelper android-sqlite android-database

8
推荐指数
1
解决办法
1万
查看次数

SQLiteDatabase.openDatabase与SQLiteOpenHelper.getReadableDatabase

这两种方法有什么区别吗?两者都返回一个打开的SQLiteDatabase.如果不存在,则两者都可以创建数据库.当需要读/写时,SQLiteOpenHelper也有getWriteableDatabase ...

我应该使用哪种方法?基于我见过的示例代码,我首先使用SQLiteOpenHelper创建我的数据库,但在需要使用数据库时调用SQLiteDatabase.openDatabase.

sqlite android dataadapter sqliteopenhelper

7
推荐指数
1
解决办法
3964
查看次数

它是如何工作的SQLiteOpenHelper Context

我有一个有两个活动的应用程序.

其中一个列出了几个值,而另一个则向DB添加了新值.

我有一个从SQLiteOpenHelper扩展的类,并管理数据库连接,查询等.

现在,我理解在SQLiteOpenHelper的构造函数中,您必须传递一个上下文,该上下文用于确定是否必须创建新数据库或打开现有数据库.

但是如果我在每个活动中都有一个SQLiteOpenHelper类的实例,那么上下文就会有所不同.

有办法避免这种情况吗?

谢谢.

sqlite android android-context sqliteopenhelper

7
推荐指数
1
解决办法
4956
查看次数

我可以在sqlite的触发器中创建变量吗?

我想创建一个更新触发器,

我可以在“BEGIN”和“END”之间创建一个变量,并通过 select sql 语句的查询设置值吗?然后通过判断这个变量来执行“if”“else”语句

sqlite datatrigger sqliteopenhelper android-sqlite

6
推荐指数
1
解决办法
2480
查看次数

java - java.lang.IllegalStateException:无法从CursorWindow读取第0行col -1

我正在创建一个使用SQLiteDatabase来存储项目的应用程序ListView.但是,在填充数据库中的数据时出现错误ListView,应用程序崩溃.

这是我的数据库 -

import java.util.ArrayList;

import android.content.ContentValues;
import android.content.Context;

import android.database.Cursor;
import android.database.SQLException;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;

public class NotesDatabase extends SQLiteOpenHelper {

private static final String NOTE_NAME = "name";
private static final String NOTE_ID = "id";
private static final String NOTE_SUBJECT = "subject";

private static final String DATABASE_NAME = "notesDatabase";
private static final String TABLE_NOTES = "notes";
private static final int DATABASE_VERSION = 1;
private static final String CREATE_NOTES_TABLE = "CREATE TABLE " + TABLE_NOTES …
Run Code Online (Sandbox Code Playgroud)

java sqlite android sqliteopenhelper android-sqlite

6
推荐指数
1
解决办法
2万
查看次数

尝试测试SQLiteOpenHelper但getWritableDatabase()会抛出Null

我正在尝试使用我的SQLiteOpenHelper对象在Android Studio中针对我的应用数据库编写junit测试.每次遇到insert方法我都会得到一个NullPointerException.我在使用getContext()和我设置的mockContext之间来回走动,但没有骰子.我启动并运行了我的模拟器.有人可以告诉我我做错了什么吗?

public class LocationDatabaseHelperTest extends AndroidTestCase {

    private SQLiteDatabase testDB;
    private SQLiteDatabase readDB;
    private LocationDatabaseHelper dbh;
    private RenamingDelegatingContext mockContext;
    private ContentValues cv;



    /**
     *Sets up a mock context to initialize the
     * LocationDatabaseHelper object.
     * @throws Exception
     */
    public void setUp() throws Exception {
        super.setUp();


        final String prefix = "test";
        mockContext = new RenamingDelegatingContext(getContext(),prefix);
        dbh = new LocationDatabaseHelper(mockContext);

        try {
            testDB = dbh.getWritableDatabase();
        } catch(Exception ex){
            ex.printStackTrace();
        }

        readDB = dbh.getReadableDatabase();
        cv = new ContentValues();
    }


    /**
     *Tests that …
Run Code Online (Sandbox Code Playgroud)

java junit android sqliteopenhelper

6
推荐指数
1
解决办法
631
查看次数

SQLiteOpenHelper多个内存数据库

android.database.sqlite.SQLiteOpenHelper如果其构造函数的name参数为null:1,则提供使用内存数据库的能力:

字符串:数据库文件的字符串,或者对于内存数据库为null

如果SQLiteOpenHelper使用nullname参数多次实例化,它们是否访问相同的内存数据库,或者每次都创建一个单独的内存数据库?

android sqliteopenhelper android-sqlite

6
推荐指数
1
解决办法
802
查看次数

如何在android中使用sqlite fts5创建表?

我想使用 fts5 扩展创建一个表

使用 fts5 创建虚拟表 TABLE_FTS_FOOD_ITEM (content='food_items', Shrt_Desc, Energy_Kcal);

但我收到这个错误。

android.database.sqlite.SQLiteException:没有这样的模块:fts5

早些时候我使用的是 fts4,运行良好。我可以在 android 中将 fts5 与 sqLitedatabase 一起使用吗?

android sqliteopenhelper android-sqlite

6
推荐指数
1
解决办法
2535
查看次数

SQLite数据库迁移似乎仅部分应用于Espresso测试

我们有一个SQLite数据库和一个对应的SQLiteOpenHelper子类。这个助手有一个onDowngrade我想为其编写Espresso测试的实现。

完整的onDowngrade实现在这里可用。这是它的简化版本:

@Override
public void onDowngrade(SQLiteDatabase db, int oldVersion, int newVersion) {
    db.execSQL("CREATE TABLE IF NOT EXISTS foo_tmp (_id integer primary key, bar text not null, baz text not null);");
    db.execSQL("INSERT INTO foo_tmp(_id,bar,baz) SELECT _id,bar,baz FROM foo;");
    db.execSQL("DROP TABLE IF EXISTS foo;");
    db.execSQL("RENAME TABLE foo_tmp TO foo;");
}
Run Code Online (Sandbox Code Playgroud)

该测试将加载具有很高版本号以及已添加或已删除列的数据库转储。然后,它将获得一个可读的数据库,并确保该版本已降级为当前的预期版本,并且列名是预期的列名。完整的资源在这里。看起来是这样的:

@Test
public void testMigration() throws IOException {
    writeDatabaseFile("database" + File.separator + dbFilename);
    InstancesDatabaseHelper databaseHelper = new InstancesDatabaseHelper();

    SQLiteDatabase db = databaseHelper.getReadableDatabase(); …
Run Code Online (Sandbox Code Playgroud)

android sqliteopenhelper android-sqlite android-espresso

6
推荐指数
1
解决办法
89
查看次数