9.4.1.2. 使用 sqlite3

优质
小牛编辑
134浏览
2023-12-01

9.4.1.2.使用 sqlite3

Android 附带了一个命令行工具sqlite3,供我们访问数据库。

要验证数据库原型是否正确,你需要:

  1. 打开终端或者命令提示符。
  2. 输入adb shell,连接到仿真器或者真机。
  3. 切换到数据库所在的目录:cd/data/data/com.marakana.yamba/databases/。
  4. 通过sqlite3timeline.db打开数据库。

打开数据库之后,你可以见到一个提示符sqlite>:

[user:~]> adb shell

# cd /data/data/com.marakana.yamba/databases/

# ls

timeline.db

# sqlite3 timeline.db

SQLite version 3.6.22

Enter ".help" for instructions

Enter SQL statements terminated with a ";"

sqlite>

在这里,你可以使用两种命令来操作SQLite数据库:

  • 标准 SQL 命令。比如insert ...,update ...,delete ...,select ...以及create table ...,alter table ...等等。SQL是一门完整的语言,本书不打算多做涉及。需要注意的是,在sqlite3中你需要使用半角分号;表示语句结束。
  • sqlite3命令。它们都是SQLite特有的,输入.help可以看到这些命令的列表。在这里,我们需要的是通过.schema命令来查看数据库的原型是否正确。

# sqlite3 timeline.db

SQLite version 3.6.22

Enter ".help" for instructions

Enter SQL statements terminated with a ";"

sqlite> .schema

CREATE TABLE android_metadata (locale TEXT);

CREATE TABLE timeline ( _id integer primary key,created_at integer, source text, txt text, user text );

最后一行输出显示,表中的字段有_id,created_at,source,txt和user。可知表的原型是正确的。

Warning:

新人很容易犯一个错误,那就是在错误的目录下执行sqlite3 timeline.db命令,然后就会发现表没有创建。SQLite不会提示你正在使用一个不存在的文件,而是直接创建它。所以务必在正确的目录下(/data/data/com.marakana.yamba/databases)执行命令,或者使用绝对路径:sqlite3 /data/data/com.marakana.yamba/databases/timeline.db。

现在已经可以创建并打开数据库了。接下来继续重构UpdaterService,为它添加插入数据到数据库的相关代码。

要验证数据是否插入成功,也是同样使用sqlite3命令,具体过程与上面相似,兹不赘述。