9.4.1.2. 使用 sqlite3
9.4.1.2.使用 sqlite3
Android 附带了一个命令行工具sqlite3,供我们访问数据库。
要验证数据库原型是否正确,你需要:
- 打开终端或者命令提示符。
- 输入adb shell,连接到仿真器或者真机。
- 切换到数据库所在的目录:cd/data/data/com.marakana.yamba/databases/。
- 通过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命令,具体过程与上面相似,兹不赘述。