精华内容
下载资源
问答
  • android开发之-查看、编辑手机sqlite数据库文件 获取手机root权限(以下步骤手机要开着kingroot等root软件) 打开Android的SDK下platform-tools的adb.exe。方法:按住shift键,在文件夹空白处右击,点击“在此处...

    android开发之-查看、编辑手机sqlite数据库文件

    1. 获取手机root权限(以下步骤手机要开着kingroot等root软件)
    2. 打开Android的SDK下platform-tools的adb.exe。方法:按住shift键,在文件夹空白处右击,点击“在此处打开命令窗口”
    3. 输入命令:adb shell
    4. 输入命令:su
    5. 输入命令:chmod -R 777
    6. 输入命令:chmod -R 777 /data
    7. 输入命令:chmod -R 777 /data/data
    8. 输入命令:chmod -R 777 /data/data/包名
      这里写图片描述

    9. 使用DDMS工具导出、导入文件
      这里写图片描述

    10. 使用sqlite可视化工具查看编辑

    注:

    用的华为手机,需要先解锁,官网有解锁步骤。解锁以后用刷机精灵一键root即可
    2. 前提需要将你的platform-tools目录加入到环境变量中 这里写图片描述
    3. 输入adb shell,出现/ $,表明没有权限,需要第4步,输入su

    参考:http://www.cnblogs.com/dava/p/3684625.html

    展开全文
  • 解决方案: debugImplementation 'com.amitshekhar.android:debug-db:1.0.6' debug,然后从debug中打印出的链接进,即可看到手机所有的数据库文件。

    解决方案:

    debugImplementation 'com.amitshekhar.android:debug-db:1.0.6'
    

    debug,然后从debug中打印出的链接进,即可看到手机所有的数据库文件。

    展开全文
  • 获取手机root权限(我现在用的Black Shark,但是没办法root,所以换了之前的Mi6) a. 之前在unlock.update.miui.com解锁过 b. 并且在miui论坛下载过分区解锁工具解锁了分区 c. 但是权限还是不够,我又用root精灵...

    一.操作步骤

    1. 获取手机root权限(我现在用的Black Shark,但是没办法root,所以换了之前的Mi6)
      a. 之前在unlock.update.miui.com解锁过
      b. 并且在miui论坛下载过分区解锁工具解锁了分区
      c. 但是权限还是不够,我又用root精灵进行了ROOT

    2. 配置电脑系统变量Path,添加platform-tools路径

    3. cmd输入adb shellsu获取超级权限)
      在这里插入图片描述

    4. 通过uname -a查看自己手机架构,查找对应sqlite3 (我的是aarch64)

    在这里插入图片描述
    https://github.com/ianmacd/SQLite3 进行下载

    1. 把目录/system/xbin只读权限改为读写

    在这里插入图片描述

    Ro: read only

    在这里插入图片描述

    Rw: read & write

    1. 移动sqlite3到/system/xbin目录

    增加文件可执行权限

    在这里插入图片描述

    1. 数据库操作

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    二. 应用软件

    1. Root Check: 查看自己手机是否获取root权限

    2. BusyBox: BusyBox 是一个集成了三百多个最常用Linux命令和工具的软件。BusyBox 包含了一些简单的工具,例如ls、cat和echo等等,还包含了一些更大、更复杂的工具,例grep、find、mount以及telnet。

    有些人将 BusyBox 称为 Linux 工具里的瑞士军刀。简单的说BusyBox就好像是个大工具箱,它集成压缩了 Linux 的许多工具和命令,也包含了 Android 系统的自带的shell。

    参考文献

    1. android sqlite3 not found 解决总结
      https://blog.csdn.net/johnnycode/article/details/45619185

    2. adb shell + sqlite3方式查询手机中数据库操作
      https://www.jianshu.com/p/96d3520e3095

    3. Android手机安装Sqlite3命令流程
      https://blog.csdn.net/lpwmm/article/details/77770917

    4. 使用ADB命令修改手机文件附加权限教程
      https://m.baidu.com/mip/c/s/m.anruan.com/mipwz_17449.html

    展开全文
  • 2018最新的手机号归属地sqlite数据库,有40多万条数据。
  • SQLite数据库操作

    千次阅读 2019-06-13 21:39:49
    SQLite数据库操作 SQLite数据库 一.SQLite数据库介绍 二.数据库核心类 三.SQL语句复习: 四.数据库简单代码: 五.代码: 六,使用事务批量处理数据 1.什么是事务? 2…事务的好处? 3.代码: SQLite数据库 一.SQLite...

    SQLite数据库操作
    SQLite数据库
    一.SQLite数据库介绍
    二.数据库核心类
    三.SQL语句复习:
    四.数据库简单代码:
    五.代码:
    六,使用事务批量处理数据
    1.什么是事务?
    2…事务的好处?
    3.代码:
    SQLite数据库
    一.SQLite数据库介绍
    1.Android 系统中集成的轻量级的数据库
    2.特点:
    轻量级 只用一个动态的库, 是以单个文件的形式进行存取
    跨平台 支持多个操作系统
    零配置 无需安装, 直接使用
    嵌入式 内嵌到手机中
    3.在程序的内部可以通过数据库的名称访问, 其他应用不能访问
    4.路径: data/data/应用程序包名/database/ ****.db
    5.存放的类型:
    NULL 空值
    INTEGER 整型(不用int)
    VARCHAR 可变长度的字符数据
    TEXT 文本字符串
    BOOLEAN 布尔
    DATE
    TIME

    二.数据库核心类
    1.SQLiteOpenHelper 数据库的帮助类, “用于数据库的创建和版本更新”
    (1)定义一个类, 继承SQLiteOpenHelper
    (2)重写构造方法 :提供数据库的基本信息 : 上下文对象,数据库名称,Null,数据库的版本号
    (3)重写父类的方法:
    onCreate():第一次创建数据库时调用, 只会执行一次 – “初始化表,初始化数据”
    onUpgrade()
    2.SQLiteDatabase 数据库的操作类, “操作数据库: 执行sql语句/增/删/改/查”
    (0)获取SQLiteDatabase对象
    (1)执行sql 语句
    void execSQL(String sql,String[] bindArgs); 执行增删改
    Cusor rawQuery(String sql,String[] selectionArgs); 执行查询
    (2)执行方法 – 封装好的方法 (适用于菜鸟级别的程序员)
    insert() 插入数据
    update() 修改数据
    delete() 删除数据
    query() 查询数据

    三.SQL语句复习:
    1.创建表:
    create table student(_id integer primary key autoincrement,name varchar(30),age integer,address varchar(30));
    2.添加数据:insert into student values(null,‘要甜雪’,18,‘北京市海淀区’);
    3.修改数据:update student set age=13,address=‘河北省沧州市’ where name=‘要甜雪’;
    4. 查询数据:
    select * from student where 字段 = ‘值’
    模糊查询: select * from 表名 where name like ‘%小%’
    select * from student order by age desc 降序查询
    sum(列名) 求和
    max(列名) 最大值
    min(列名) 最小值
    avg(列名) 求平均值
    count(列名) 统计记录数
    5.删除数据:delete from student where id=12;

    四.数据库简单代码:
    举例:创建一张表student(id name age address)
    1.自定义类继承SQLiteOpenHelper

    注意:onCreate方法只会执行一次,如果想要修改表的字段,修改oncreate方法的话是不行的,需要删除之前生成的数据库

    //TODO 1:定义类继承SQLiteOpenHelper
    public class MyHelper extends SQLiteOpenHelper {
    //TODO 2: 构造
    public MyHelper(Context context) {
    super(context, “student.db”, null, 1);
    }
    //TODO 3:重写父类的方法
    /**
    * 创建数据库时调用, 只执行一次 – 初始化表, 初始化数据
    * @param db 数据库的操作类
    */
    @Override
    public void onCreate(SQLiteDatabase db) {
    db.execSQL(“create table User(_id integer primary key autoincrement,Name varchar(20),Sex varchar(20),Age integer)”);
    }

    /**
     * 更新数据 --- 如果数据库的 版本号发生变化, 执行该方法 --- 执行多次
     */
    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
    }
    

    }

    2.执行增删改查方法:

    public void insert(View view) {
            MyHelper dbOpenHelper=new MyHelper(this);
            SQLiteDatabase db = dbOpenHelper.getWritableDatabase();
            //方式一:
            db.execSQL("insert into User(Name,Sex,Age) values('尹志强','男',18)");
            //方式二:
            //参数一表名 参数二:默认值  参数三:要插入的值
            ContentValues values = new ContentValues();
            values.put("Name","殷志强");
            values.put("Sex","男");
            values.put("Age","18");
            db.insert("User",null,values);
        }
        //TODO:修改数据
        public void updateData(View view) {
            MyHelper dbOpenHelper=new MyHelper(this);
            SQLiteDatabase db = dbOpenHelper.getWritableDatabase();
            //方式一:
            db.execSQL("update User set Age = 3 where name=?",new String[]{"尹志强"});
            //方式二:参数一:表名  参数二:要修改的值  参数三:条件 参数四:为条件中的?赋值
            ContentValues values = new ContentValues();
            values.put("Age","3");
            int  num=db.update("User",values,"name=?",new String[]{"尹志强"});
    
        }
    
    //TODO:删除数据
    public void deleteData(View view) {
        MyHelper dbOpenHelper=new MyHelper(this);
        SQLiteDatabase db = dbOpenHelper.getWritableDatabase();
        //方式一:
        String sql="delete from User where name = ? ";
        db.execSQL(sql,new String[]{"张磊"});
        //方式二:参数一:表名  参数二:要修改的值  参数三:条件 参数四:为条件中的?赋值
        ContentValues values = new ContentValues();
        values.put("Age","3");
        int  num=db.update("User",values,"name=?",new String[]{"尹志强"});
    
    }
    //TODO:查询数据
    public void query1(View view) {
        //创建一个数据库
        MyHelper dbOpenHelper=new MyHelper(this);
        SQLiteDatabase db = dbOpenHelper.getWritableDatabase();
        //方式一
        //Cursor cursor = db.rawQuery("select * from User",null);
        //方式二
        Cursor cursor=db.query("User",null,null,null,null,null,null);
        //循环输出
        while (cursor.moveToNext())
        {
            //cursor.getColumnIndex("Name")  通过列名  获取所在列的编号
            //cursor.getString(列的编号);    通过列的编号, 得到该列的数据
            String Name = cursor.getString(cursor.getColumnIndex("Name"));
            String Sex = cursor.getString(cursor.getColumnIndex("Sex"));
            int Age = cursor.getInt(cursor.getColumnIndex("Age"));
            Log.i("yaotianxue","姓名: " + Name +", 性别: "+ Sex + ",  年龄 : "+ Age);
    
        }
    }
    

    五.代码:
    举例:创建一张表student(id name age address)

    1.自定义类继承SQLiteOpenHelper
    
    注意:onCreate方法只会执行一次,如果想要修改表的字段,修改oncreate方法的话是不行的,需要删除之前生成的数据库
    
    //TODO 1:定义类继承SQLiteOpenHelper
    public class MyHelper extends SQLiteOpenHelper {
        //TODO 2: 构造
        public MyHelper(Context context) {
            super(context, "student.db", null, 1);
        }
        //TODO 3:重写父类的方法
        /**
         * 创建数据库时调用, 只执行一次  -- 初始化表, 初始化数据
         * @param db  数据库的操作类
         */
        @Override
        public void onCreate(SQLiteDatabase db) {
            db.execSQL("create table student(_id integer primary key autoincrement,name varchar(20),age integer)");
        }
    
    
    /**
     * 更新数据 --- 如果数据库的 版本号发生变化, 执行该方法 --- 执行多次
     */
    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
    }
    

    }

    public class Student {
    private int _id;
    private String name;
    private int age;

    public Student(int _id, String name, int age) {
        this._id = _id;
        this.name = name;
        this.age = age;
    }
    
    public int get_id() {
        return _id;
    }
    
    public void set_id(int _id) {
        this._id = _id;
    }
    
    public String getName() {
        return name;
    }
    
    public void setName(String name) {
        this.name = name;
    }
    
    public int getAge() {
        return age;
    }
    
    public void setAge(int age) {
        this.age = age;
    }
    

    }

    3.数据库工具类,提供增删改查方法,不要在Activity中执行SQL语句,做到MVC模式:

    public class StudentDao {

    MyHelper myHelper;
    //提供构造方法:将数据库创建出来
    public StudentDao(Context context) {//传递上下文对象
        myHelper=new MyHelper(context);
    }
    
    /***
     * @param student 传递你要插入的对象
     * @return  插入是否成功
     */
    public boolean add(Student student){
        //获得数据库对象,可读可写
        SQLiteDatabase db=myHelper.getWritableDatabase();
        //创建ContentValues对象,封装你要插入的数据
        ContentValues values = new ContentValues();
        values.put("name",student.getName());
        values.put("age",student.getAge());
        long num=db.insert("student",null,values);
        //判断是否插入成功
        if(num>0){
            return true;
        }else{
            return false;
        }
    }
    
    /***
     * 根据id删除数据
     * @param id
     * @return  代表删除的个数
     */
    public int deleteById(int id){
        //获得数据库对象,可读可写
        SQLiteDatabase db=myHelper.getWritableDatabase();
        return  db.delete("student","id=?",new String[]{id+""});
    }
    /***
     * 根据name删除数据
     * @param name
     * @return  代表删除的个数
     */
    public int deleteByName(String name){
        //获得数据库对象,可读可写
        SQLiteDatabase db=myHelper.getWritableDatabase();
        return  db.delete("student","name=?",new String[]{name+""});
    }
    
    /***
     * 根据id修改数据
     * @param student 传递你要修改成的对象
     * @return
     */
    public int update(Student student,int id){
        //获得数据库对象,可读可写
        SQLiteDatabase db=myHelper.getWritableDatabase();
        //创建ContentValues对象,封装你要插入的数据
        ContentValues values = new ContentValues();
        values.put("name",student.getName());
        values.put("age",student.getAge());
        return db.update("student",values,"id=?",new String[]{id+""});
    }
    
    /***
     *
     * @return 查询所有的数据
     */
    public ArrayList<Student> queryAll(){
        //获得数据库对象,可读可写
        SQLiteDatabase db=myHelper.getWritableDatabase();
        //创建集合
        ArrayList<Student> list = new ArrayList<>();
        //执行查询语句
        Cursor cursor = db.query("student", null, null, null, null, null, null);
       //遍历游标
        while (cursor.moveToNext()){
            int id=cursor.getInt(cursor.getColumnIndex("_id"));
            String name=cursor.getString(cursor.getColumnIndex("name"));
            int age=cursor.getInt(cursor.getColumnIndex("age"));
            //创建对象存入集合中
            Student student = new Student(id, name, age);
            list.add(student);
        }
        return list;
    }
    

    }

    4.执行增删改查操作,将查询到的数据展现在ListView中

    public class Main2Activity extends AppCompatActivity {
    private StudentDao dao;
    private ListView listView;
    private MyAdapter myAdapter;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        listView=findViewById(R.id.lv);
        dao=new StudentDao(Main2Activity.this);
    }
    //TODO:插入数据
    public void insert(View view) {
        Student student = new Student("姚甜雪", 34);
        dao.insert(student);
    }
    //TODO:删除数据
    public void delete(View view) {
        dao.deleteById(1);
    }
    //TODO:修改数据
    public void update(View view) {
        Student student = new Student("姚甜雪1号", 78);
        dao.update(student,1);//将id为1的student修改成
    }
    //TODO:查询数据
    public void query(View view) {
        //查询数据
        ArrayList<Student> list = dao.queryAll();
        //创建适配器
        myAdapter=new MyAdapter(Main2Activity.this,list);
        listView.setAdapter(myAdapter);
    }
    

    }

    六,使用事务批量处理数据
    1.什么是事务?
    就是把多件事情当做一件事情来处理。也就是大家同在一条船上,要活一起活,要over一起over !
    在Android应用程序开发中,经常会遇到需要进行数据库操作的时候,有关数据库事务处理对Android应用程序的稳定性和效率提升非常重要。

    2…事务的好处?
    1.首先Android数据库操作,特别是进行写操作的时候非常慢,将所有操作打包成一个事务能大大提高处理速度。
    2.保证数据的一致性,让一个事务中的所有操作都成功执行,或者失败,或者所有操作回滚。
    例如:应用程序初始化时需要批量插入大量数据,单独的使用for循环方法导致应用响应缓慢,因为 sqlite插入数据的时候默认一条语句就是一个事务,有多少条数据就有多少次磁盘操作。我的应用初始5000条记录也就是要5000次读写磁盘操作。
    而且不能保证所有数据都能同时插入。(有可能部分插入成功,另外一部分失败,后续还得删除。太麻烦)

    3.代码:

    SQLiteDatabase db = myHepler.getWritableDatabase();
    db.beginTransaction();//开启事务
    try {
    for (int i=0;i<1000;i++) {
    db.execSQL(“insert into 表名 (字段名) values(值)”);
    }
    db.setTransactionSuccessful();//成功
    }catch (Exception e){
    e.printStackTrace();
    }finally {
    db.endTransaction();//结束事务
    db.close();//关闭
    }
    

    展开全文
  • 手机号码归属地SQLite数据库
  • 手机号码归属地查询sqlite数据库,用于网站建设,判断填写号码的归属地。非常完整。
  • SQLite数据库 Android系统集成了一个轻量级的数据库:Sqlite,Sqlite只是一个嵌入式的数据库引擎,专门适用于资源有限的设备上(如手机、PDA等)适量数据存取。 虽然Sqlite支持绝大部分SQL92语法,也允许开发者使用...
  • SQLite 数据库

    2020-03-11 20:34:44
    这里写自定义目录标题SQLite 数据库数据库简介 SQLite 数据库 SQLite 是开源的轻型嵌入式数据库引擎,起初D.RichardHipp 创建的公共项目,使用 C 语言编写,开始的目标就是嵌入式。最早的版本于 2000 年公开发布,...
  • SQLite数据库

    2019-10-14 19:09:26
    SQLite数据库什么是SQLite?含义:特点:可存放以下类型的数据:SQLite中两个主要的类是什么一. SQLiteOpenHelper 数据库的帮助类二. SQLiteDatabase 数据库的操作类SQLite两个类分别的作用一. SQLiteOpenHelper ...
  • 操作SQLite数据库SQLite数据库是文件数据库,是保存在文件系统中的。因此需要知道文件保存到哪里,下面的代码中,我们将Notebook.sqlite数据库存放在Documents目录下。其中涉及到SQLite数据库的创建、打开、创建数据...
  • SQlite数据库

    2013-12-27 18:12:27
    android数据库打开工具,便于查看手机data下的.data数据库文件。
  • sqlite数据库的内容在电脑上可以用navicate查看,但是在手机里系统不提供软件给人查看,在获取root权限之后,用sqLite Editor就可以查看啦。  在软件的主界面有4个tab,在FILES tab下找到目录data/data/包名/,就...
  • SQLite数据库同步指南

    2016-02-27 17:48:35
    SQLite DBSync是开源嵌入式数据库SQLite的数据同步引擎,实现了SQLite与SQLite数据库之间以及SQLite与异构数据库Oracle、MySQL、SQLServer之间的增量的、双向的数据同步功能。在文章中对SQLite DBSync 的体系结构、...
  • Android 入门第七讲03- SQLite数据库1.SQLite数据库概述2.SQLite数据库的使用方法1.SQL语法复习1.建表2.查询3.增加4.修改5.删除2.SQLite数据库 Android 入门第七讲02-SharedPreferences(SharedPreferences概述,...
  • AndroidStudio导出sqlite数据库

    千次阅读 2018-07-25 14:04:14
    AndroidStudio3.0导出手机sqlite数据库到本地 1.打开AndroidStudio,找到DeviceFileExporler,如图: 2.选择展开的目录【data-&gt;data-&gt;项目包名的目录-&gt;database目录-&gt;想要导出的db...
  • (1) 使用SQLite的官方管理工具,它是一个命令行工具,在android的SDK中自带了sqlite3.exe(我的在目录E:\SDK\platform-tools下)。  为了使用方便,需将其路径注册到系统环境变量path中,即将:%Android_Home%加...
  • sqlite数据库

    2018-12-13 15:04:22
    sqlite是普遍应用于手机软件上的微型数据库,可以修改.bd文件的DataBase
  • SQLite数据库查看软件

    2011-07-10 12:36:52
    SQLite数据库查看软件,使用于查看Android手机或其他SQLite数据库相关,可查看Android中数据库的相关内容。 声明:仅供个人学习研究,不得用于商业目的!
  • 安卓手机SQLite数据库发展到什么程度了?安全性如何?常见的窃取和相应预防措施有哪些?如果应用用到SQLite需要注意哪些方面?希望有经验的高手简单回答一下。谢谢
  • Android使用SQLite数据库

    千次阅读 2017-01-21 00:57:48
    SQLite数据库是一个轻量级的DBMS(数据库管理系统)。SQLite使用单个文件存储数据,Android标准库包含SQLite库以及配套使用的一些Java辅助类。主要特点:轻量级,单一文件,跨平台,开源。二. Android中SQLite数据库...
  • Unity中Sqlite数据库

    千次阅读 2018-02-04 19:12:53
    Unity中Sqlite数据库 #1、 SQLite数据库简介 ++1.1、什么是SQLite ++++1、SQLite是一款轻型的数据库。 ++++2、SQLite的设计目标是嵌入式的。 ++++3、SQLite占用资源非常的低。 ++++4、SQLite能够支持Windows/Linux...
  • android SQLite数据库的使用

    千次阅读 2018-06-26 09:59:22
    今天,简单讲讲android如何使用SQLite数据库。最近,自己在做一个功能时又用到了SQLite数据库,发现自己还是掌握的不很全面。其实之前的app里面也一直用到了数据库,但是自己没有花时间写篇博客总结一下。所以...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 29,245
精华内容 11,698
关键字:

手机sqlite数据库