Apr 17,2010

SQLite 数据库需要放在目录中的databases folder,我们可以使用“adb shell” 的 “mkdir”来创建这个文件夹。

#ls

lib

#mkdir databases

#ls

databases

lib

默认创建的"databases"仅供 "root"权限访问,而在Android平台中,我们启动的每个“Activity”都是使用不同的“user”权限,所以我们需要用“chmod”命令来改变默认权限:

#chmod 777 databases

#ls -l

drwxrwxrwx root 2010-04-21 20:33 databases

drwxr-xr-x sysem 2010-04-21 20:31 lib

有了存放数据库的文件夹,可以开始创建数据库。使用“sqlite3”来创建

#cd databases

#sqlite3 note.db

SQLite version 3.5.9

Enter ".help" for instructions

sqlite>

现在这个数据库还是空的,里面没有存储任何数据或记录。当执行“sqlite3”命令后,命令提示符从#换成“sqlite>”,表示进入“SQLite”互动模式,可以做添加,删除,修改,查询等动作。

我们可以输入一下命令来创建table。

sqlite> CREATE TABLE dictionary (word VARCHAR(30), pronounce VARCHAR(50), comment NVARCHAR(100));

注意,SQLite命令和java代码一样,大小写代表不同符号,而且以分号结尾。sqlite3与许多SQL数据库软件

不同的是,它不在乎字段属于哪一种资料型态:sqlite3的字段可以储存任何东西:文

字、数字、大量文字(blub),它会在适时自动转换。

输入以上命令后,可以用一下命令来验证是否创建成功,这命令作用是列出目录下所有SQLite的数据库列表:

sqlite>.databases

seq name file

------------- ------------------------------------------------------------------------

0 main /data/data/com.wenjie.android.dictionary/databases/dictionary.db

“.table” 用来列出所有tables。

sqlite>.table

dictionary

".schema"用来现实出创建数据表的命令。

sqlite>.schema

CREATE TABLE dictionary (word VARCHAR(30), pronounce VARCHAR(50), comment NVARCHAR(100));

若有多个数据表,也可以在".schema"后面输入特定的数据表当参数,如".schema dictionary",这样只会打印出对应的数据表创建命令。

Apr 18, 2010

1. 进入到F:\Android\android-sdk_r05-windows\android-sdk-windows\tools 以后,

2. 应该使用adb push命令将硬盘上的文件复制到android AVD 的某个应用程序的databases文件夹下,执行命令如下:

adb push F:\en.txt data/data/com.wenjie.android.dictionary/databases

=>758 KB/s(813441 bytes in 1.046s)

3. 在AVD是运行的状态下,按着以下步骤:

(1) 运行输入 adb shell
(2) 进入命令界面后 输入 ls 指令 会列出文件的目录
(3) cd 进入你想要的目录里
(4) 一层一层进去后会发现 databases目录 你的数据文件就在这个目录下放着
(5) sqlite3 test (test就是你创建的数据库的名称 注意:不要加.db 后缀)

(6) 现在你就进入你创建的test数据库了使用 .tables 就可以查看所有的表了;

***************************************************************

adb shell

#cd /data/data/<package_name>/databases

# find data -name "*.db" -print
data/data/com.google.android.providers.contacts/databases/contacts.db
data/data/com.google.android.providers.googleapps/databases/accounts.db
data/data/com.google.android.providers.im/databases/im.db
data/data/com.google.android.providers.media/databases/media.db
data/data/com.google.android.providers.telephony/databases/mms.db
data/data/com.google.android.providers.telephony/databases/sms.db
data/data/com.google.android.providers.telephony/databases/telephony.db
data/data/com.google.android.providers.settings/databases/settings.db
data/data/com.google.android.maps/databases/maps.db
data/data/com.wenjie.android.dictionary/dictionary.db

or

#ls

com.wenjie.android.dictionary

com.android.camera

:

:

com.android.browser

#cd com.wenjie.android.dictionary

cd com.wenjie.android.dictionary

#ls

databases (** 只有databases这个文件夹)

#cd databases

cd databases

#ls

dictionary.db (**只有dictionary.db文件)

#sqlite3 dictionary.db

SQLite version 3.5.0
Enter ".help" for instructions
sqlite> .separator "|"

sqlite> .import en.txt dictionary

(**en.txt成功导入到dictionary.db)

其他sqlite的特别用法


1. 建立索引

如果资料表有相当多的资料,我们便会建立索引来加快速度。好比说:

create index film_title_index on film(title);

意思是针对film资料表的name字段,建立一个名叫film_name_index的索引。这个指

令的语法为

create index index_name on table_name(field_to_be_indexed);

一旦建立了索引,sqlite3会在针对该字段作查询时,自动使用该索引。这一切的操作

都是在幕后自动发生的,无须使用者特别指令。

2. sqlite可以在shell底下直接执行命令:

sqlite3 film.db "select * from film;"

输出 HTML 表格:

sqlite3 -html film.db "select * from film;"

将数据库「倒出来」:

sqlite3 film.db ".dump" > output.sql

利用输出的资料,建立一个一模一样的数据库(加上以上指令,就是标准的SQL数据库

备份了):

sqlite3 film.db < output.sql

在大量插入资料时,你可能会需要先打这个指令:

begin;

插入完资料后要记得打这个指令,资料才会写进数据库中:

commit;

Jun 26, 2010

利用空余的时间终于搞成了电子词典的部分功能。但是遇到以下问题:
(1).当要利用插入功能插入新单词是爆出如下问题:

android.database.sqlite.SQLiteException: error code 8: attempt to write a readonly database

原因是没有给SQLite数据库文件所在文件夹对应用户的读写权限。

#ls -l dictionary.db

-rw-r--r-- root root 5120 2010-05-09 14:32 dictionary.db

然后把权限改了就没有问题了。

#chmod 777 dictionary.db

chomod 777 dictionary.db

#ls -l dictionary.db

-rwxrwxrwx root root 5120 2010-05-09 14:32 dictionary.db

更多相关文章

  1. SpringBoot 2.0 中 HikariCP 数据库连接池原理解析
  2. Android的UI显示原理之Surface的创建
  3. 通过adb shell dumpsys命令获取当前应用的component
  4. Android(安卓)Studio 自定义Gradle Plugin
  5. Android(安卓)ADB命令大全(通过ADB命令查看wifi密码、MAC地址、
  6. 你确定已经掌握了adb的使用?
  7. android adb 命令常用总结
  8. Android创建服务之started service
  9. android使用implements ActionBar.TabListener的方式创建导航

随机推荐

  1. Android(安卓)中的AsyncTask的使用心得
  2. Android总结与展望:2012成为王者,2013再创
  3. Android(安卓)平台架构
  4. Android(安卓)Studio添加第三方库遇到的
  5. 关于 android 子进程域名解析失败的问题
  6. SEAndroid安全机制简要介绍和学习计划
  7. android性能优化(一)内存管理
  8. Android(安卓)基础面试题目
  9. QQ For Android试用
  10. 最全的Android项目结构以及功能