怎么把sqlite文件放到android里

怎么把sqlite文件放到android里,第1张

可以将你的数据库.db文件复制到Android工程的res raw文件夹中

在Android中不能直接打开res raw目录中的数据库文件,而需要在程序第一次启动时将该文件复制到手机内存或SD卡的某个目录中,然后再打开该数据库文件

复制的基本方法是使用getResources().openRawResource方法获得res raw目录中资源的InputStream对象,然后将该InputStream对象中的数据写入其他的目录相应的文件中

最后可以使用SQLiteDatabase.openOrCreateDatabase方法来打开任意目录中的SQLite数据库文件

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、将手机的电脑端驱动程序下到电脑里,并安装好。

2、手机里的设置》开发者选项,将里面的“USB调试”一项勾选去掉。

3、采用USB或者WIFI方式将手机与电脑相连。

4、如果安装驱动没问题,电脑就会将手机当成一个U盘(其实是手机的存储卡)来对待。

5、这时可以对手机上的文件做各种 *** 作,比如复制、粘贴、删除、打开等。就跟电脑上的一般文件一样了。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/10022015.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-04
下一篇2023-05-04

发表评论

登录后才能评论

评论列表(0条)

    保存