首页 > 代码库 > 如何设置Android手机的sqlite3命令环境

如何设置Android手机的sqlite3命令环境

转载自:http://blog.csdn.net/ygsyyl/article/details/8144407

1、在PC环境下启动一个模拟器(不是手机)

 2、查看模拟器 /systen/xbin是否有sqlite3命令

adb shell

 cd /system/xbin

 ls

3、把模拟器 /system/xbin/sqlite3命令文件从模拟器拷到PC上

adb pull /system/xbin/sqlite3 e:/eclipse

4、关闭模拟器,把Android手机连接到PC

5、获取Android手机 /system 文件夹的读取权限

adb shell  # mout -o remout, rw -t yaffs2 /dev/block/mtdblock3 /system(根据自己的设备网上很多人的设备是这个)

 

 

 

6、把PC上的e:/eclipse/sqlite3文件拷到Android手机的/system/xbin/目录下

adb    push    e:/sqlite3      /system/xbin

若是提示permission denial 

adb shell

chmod 777 system/

cd system

chmod 777  xbin 

然后执行上面的 push

若是还是不行就直接 到eclipse DDMS   filter explore 下面   /system/xbin

把所用的数据直接从电脑上拖到 /system/xbin 下面

 

7、修改Android真机/system/xbin/sqlite3命令的权限

adb shell

 chmod 4755 /system/xbin/sqlite3

 

然后输入sqlite3

进入到sqlite就可以了。

 

 

若是能执行则说明数据库安装好了

8

android 数据库是建立在

/data/data/项目com.example.name/databases/数据库名

 

进入目录下面打开数据库

sqlite3 database_name.db .

 

若是打不开则把数据库的权限改成777或755就可以了。

Chmod 777 database_name.

若是要进行写操作则必须把所有目录的写权限设置了

    /data/data/项目com.example.name/databases/数据库名人

数据库前面所有的权限都改了

chmod 777 data

 cd data

chmod 777 data

cd data

chmod 777 项目名称

 

 

然后就可以执行sqlite3 数据库名就可以了。


 

9帮助 .help 获得帮助

退出数据库.quit 

 

 

 

下面是补充些问题

首先 adb shell 

Mount 

然后会看到下面一行

 

上面在windows使用的 adb #  mount -o ..............

 

在adb shell 下面可以使用下面命令

Mount -r -w   remount -t rfs /dev/block/sti9 /system

 

rfs  与 sti9 都是根据上面的一个图看到的。 根据你自己的设备写

最后

  Mount -r -o  remount -t rfs /dev/block/sti9 /system

 重新remount一下 为了安全。。。

 

 

 

常用命令;

.databases  查看所有数据库

.tables  查看所有表

.dump  查看所有插入语句

.schame table_name  查看表结构

查了半天sqlite的手册,没找到怎么修改列名。最后用了一个很笨的方法。

这里我要把post的tbl重命名为tb_l。

首先重命名post表。

ALTER TABLE post RENAME TO tmp_post;
在重新创建post表。

?
1
2
3
4
CREATETABLEpost(
idintegerprimarykey autoincrement,
tb_lvarchar(128)notnull
);
把tmp_post的数据导入post,并删除tmp_post;

 

insert into post (tb_l) select tbl from tmp_post;
drop table tmp_post;
如果原表tmp_post和新创建的标post列数一致,并且是一一对应的话,可以用一下语句导入。

insert into post select * from tmp_talbe;

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

 

 

使用Sqliteman修改表时,遇到一个问题,每当添加或修改列信息时,作为主键的信息就会丢失,所以只能自己写Sql执行了。示例:

 

ALTER TABLE"store_productcategory"  ADD COLUMN "DisplayOrder" INT DEFAULT(0)

 

SQLite的最大特点是你可以吧各种类型的数据保存到任何字段中,而不用关心字段的数据类型。主键除外。主键只能保存64位整数。既然类型不太明确。我想你存的类型是什么就应该是什么类型,不会报错的。也就是无类型。

* SQLite支持表名的修改和增加列
     * 1,修改表名:ALTER TABLE oldtablename RENAME TO newtablename;
     * 2,增加列:ALTER TABLE tablename ADD COLUMN fieldname  fieldtype;

更新数据  update mytab set columon =‘date‘ where id=10;