柯一 2017-07-30 02:04 采纳率: 0%
浏览 778
已结题

andriod 数据存储与读取

如何将音频或者音频路径存入SQLite数据库中,又怎么读取

  • 写回答

4条回答 默认 最新

  • 饭小粒 2017-07-30 02:12
    关注

    SQLite数据库存储数据
    SQLite是一个轻量级关系型数据库,既然是关系型数据库,那操作起来其实跟MySQL、sql server差不多的。
    SQLite 和其他数据库最大的不同就是对数据类型的支持,创建一个表时,可以在 CREATE TABLE 语句中指定某列的数据类型,但是你可以把任何数据类型放入任何列中。当某个值插入数据库时,SQLite 将检查它的类型。如果该类型与关联的列不匹配,则 SQLite 会尝试将该值转换成该列的类型。如果不能转换,则该值将作为其本身具有的类型存储。比如可以把一个字符串(String)放入 INTEGER 列。SQLite 称这为“弱类型”(manifest typing.)。
      对数据库SQLite进行操作,我们要借助于SQLiteOpenHelper类进行操作。对数据库的操作也就是”增、删、改、查“。在学习数据库的操作之前我们首先要学会如何创建数据库……
    创建数据库
      数据库的操作借助于SQLiteOpenHelper,SQLiteOpenHelper是一个抽象类,我们我们在使用SQLiteOpenHelper时要先创建一个MySQLiteOpenHelper继承SQLiteOpenHelper类。
      SQLiteOpenHelper有两个非常重要的方法:getReadableDatabase()方法返回数据库是一个只读的;getWriteableDatabase()方法获得是一个可读写的数据库对象。这里我们使用getWriteableDatabase()方法获得数据库Database对象。
    添加数据
      使用SQLiteDatabase的insert(String table, String nullColumnHack, ContentValues values)方法插入数据。这个方法包含三个参数:
      我们先列举一条SQLite中的插入语句:INSERT INTO user (name, passwords)] VALUES ("张三", "123456");
    String table:操作的数据表的名称。
    String nullColumnHack:用于我们在未指定添加数据的情况下,为数据表中可以添加null值的数据填入null值。一般这个参数我们传入null。
    ContentValues values:用于传递数据,通常我们通过ContentValues 类的对象的putXXX()方法封装数据,然后将数据添加进数据库。
      ContentValues 类,类似于Java中的Map,以键值对的方式保存数据。
    删除数据
      使用SQLiteDatabase的delete(String table, String whereClause, String[] whereArgs)方法删除数据。这个方法包含三个参数:
      我们先列举一条SQLite中的删除语句:DELETE FROM user WHERE name="张三"。
    String table:操作的数据表的名称。
    String whereClause:约束删除行的条件。相当于SQLite语句中“where name=?“内容。
    String[] whereArgs:与前一个参数对应约束删除行的条件。相当于”where name=”张三““中的”张三“。
    注意:如果参数String whereClause和参数String[] whereArgs都传null的话,就是删除所有行。
    修改数据
      使用SQLiteDatabase的 update (String table, ContentValues values, String whereClause, String[] whereArgs)方法删除数据。这个方法包含四个参数:
      我们先列举一条SQLite中的修改语句:UPDATE user SET name= "李四", passwords= "123" WHERE name="张三"。
    String table:操作的数据表的名称。
    ContentValues values:用于传递数据,通常我们通过ContentValues 类的对象的putXXX()方法封装数据,然后将数据添加进数据库。
    String whereClause:约束修改行的条件。相当于SQLite语句中“where name=?“内容。
    String[] whereArgs:与前一个参数对应约束删除行的条件。相当于”where name=”张三““中的”张三“。
    查询数据
      对于”查“操作,SQLiteDatabase提供了多种方法。
      我们先列举一条SQLite中的修改语句:SELECT passwords="123" FROM user。
    (1)使用SQL语句进行查询。这里SQLiteDatabase提供了方法:
    rawQuery (String sql, String[] selectionArgs):该方法返回 Cursor类的对象,用于操作查询的结果。
    (2)使用SQLiteDatabase内定方法查询:
    query(String table, String[] columns, String selection, String[] selectionArgs, String groupBy, String having, String orderBy, String limit):这个方法有N多个参数啊……String table是操作的数据表的名称;String selection是筛选的字段选项;String[] selectionArgs是字段选项对应的值;String groupBy是筛选结果的分组依据;String having是在由groupBy子句创建的分组上设置条件;String orderBy是结果的排序方式,String limit是筛选结果的显示限制,例如“2, 3”是指从筛选结果的第2个开始显示3个。

    评论

报告相同问题?

悬赏问题

  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器