zoukankan      html  css  js  c++  java
  • 如何设置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
    CREATETABLE post(
    idintegerprimary key 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;

  • 相关阅读:
    如何将一个用utf-8编码的文本用java程序转换成ANSI编码的文本
    【笔记】Nginx热更新相关知识
    网站性能测试工具 webbench 的安装和使用
    Windows 7环境下网站性能测试小工具 Apache Bench 和 Webbench使用和下载
    【笔记】Rancher2.1容器云平台新特性
    MinTTY终端模拟器要点
    CEBX格式的文档如何转换为PDF格式文档、DOCX文档?
    Rancher2.0与DataDog集成部署
    使用Docker方式创建3节点的Etcd集群
    NTP服务器时间同步
  • 原文地址:https://www.cnblogs.com/flyingdirt/p/3817919.html
Copyright © 2011-2022 走看看