Android进入SQLite数据库(四种方案)

打开SQLite数据库的:

方式一:在Android Studio中

  • 1.先启动自己的项目然后在Android Studio底部打开Terminal

在这里插入图片描述

  • 2、adb shell远程来连接到手机系统
adb shell

结果:

generic_x86:/ $
  • 3、简单查看一下文件夹
ls

结果:

ls: ./init.zygote32.rc: Permission denied
ls: ./init.rc: Permission denied
ls: ./init.environ.rc: Permission denied
ls: ./init.usb.rc: Permission denied
ls: ./adb_keys: Permission denied
ls: ./init.usb.configfs.rc: Permission denied
ls: ./ueventd.rc: Permission denied
ls: ./metadata: Permission denied
ls: ./init: Permission denied
acct bugreports config debug_ramdisk etc        odm  product          sbin    sys
apex cache      d      default.prop  lost+found oem  product_services sdcard  system
bin  charger    data   dev           mnt        proc res              storage vendor

可能遇到的问题:
Permission denied
/system/bin/sh: cd: /data/da: No such file or directory
这些其实都是权限问题

如果没有遇到Permission denied问题可忽略第四步。

解决方案在底部

  • 4、切换为root用户
su


也可以使用su root命令,两者本质上是一样的。

su root

结果:

generic_x86:/ #

如果你输入命令后你感觉和之前没有什么区别,那么此时你就应该学习一下你的Linux基础啦。
补充:

在Linux中
#:代表管理员即root用户(拥有最高权限)
$:   普通用户

可能遇到的问题:

/system/bin/sh: su: inaccessible or not found

解决方案在底部

  • 5、进入到databases文件夹

注意:要求找自己项目的database下的

cd  /data/data/com.example.sqlitedemo/databases

结果:

generic_x86:/data/data/com.example.sqlitedemo/databases #
  • 6、进入数据库
    sqlite3 database_name
sqlite3 product.db

结果:

generic_x86:/data/data/com.example.sqlitedemo/databases # sqlite3 product.db
SQLite version 3.22.0 2018-12-19 01:30:22
Enter ".help" for usage hints.
sqlite>
  • 7、一个简单的查询
select * from information;

这个是我之前插入的一条数据

1|one|one

END
此时就可以对该数据库进行操作啦!

方式二:cmd中

方式二与方式一其实是一样的,只是打开方式不同

  • 1、打开cmd
    win+r 输入cmd 回车
    在这里插入图片描述
  • 2、远程连接手机系统
adb shell

在这里插入图片描述

ps:如果你没有给SDK配置环境变量,直接使用此命令是无法打开的。
需要进入到自己电脑SDK目录下的platform-tools文件夹内打开
A:\Document\AndroidStudio_SDK\platform-tools
附:在这里插入图片描述

  • 3、简单的查看目录
ls

结果:
在这里插入图片描述
可能遇到的问题:
Permission denied
/system/bin/sh: cd: /data/da: No such file or directory
这些其实都是权限问题

第四步就是解决方案
如果没有遇到Permission denied问题可忽略第四步。

  • 4、切换为root用户
su


也可以使用su root命令,两者本质上是一样的。

su root

结果:

generic_x86:/ #

可能遇到的问题:

/system/bin/sh: su: inaccessible or not found

解决方案在底部

  • 5、进入到databases文件夹

注意:要求找自己项目的database下的

cd  /data/data/com.example.sqlitedemo/databases

结果:
在这里插入图片描述

  • 6、进入数据库
    sqlite3 database_name
sqlite3 product.db

结果:
在这里插入图片描述

  • 7、查看所有表
.tables

android_metadata为默认的一个表
information是我自己创建的表
在这里插入图片描述
END
此时就可以对该数据库进行操作啦

方式三:利用谷歌浏览器

附链接:https://blog.csdn.net/code_hero666/article/details/80282394?utm_source=blogkpcl8
这种方案可能会遇到“HTTP/1.1 404 Not Found”这个问题,解决方案:暂无

方案四:利用SQLiteExpertProSetup64第三方工具

如果前三种方式都无法解决,那这个就是一个终极方案,除了麻烦一点没有其他的啦
下载地址:
http://www.sqliteexpert.com/download.html
直接下载安装即可
使用方法:
1、导出数据库
利用Android Studio将数据库下载到本地
在这里插入图片描述
在本地新建一个databases文件夹将两个文件放入即可

2、打开SQLiteExpertProSetup64
File—>Open Database
找到刚才导出的数据库文件
在这里插入图片描述
这种方案之所以麻烦是因为,每次操作一次数据库都要导出才能看到结果。

附加:

1、关于adb shell 的解释:

ADB: Android debug bridge.

Android手机实际是基于Linux系统的。

在你的android手机的设置中,Settings->Applications->Development->USB debugging勾选上,就可以允许PC通过adb shell命令远程登录你手机的linux系统。

这时通过USB线将android手机与电脑问连起来,在电脑上dos命令行中输入adb shell命令,可以远程登录到android手机的linux系统中。

成功登陆到android手机的系统中后,就可以运行一些简单的linux命令,比如'ls'查看目录中的文件,‘cd xxx’进入到xxx目录, 'exit'退出登录等等答。

2、问题解决:

  • 1、关于/system/bin/sh: su: inaccessible or not found问题的解决:
    出现此问题是因为手机(虚拟机)中没有或者不支持导致
    经了解发现虚拟机中的Google Play是不支持root的,
    在这里插入图片描述
    解决方案:
    安装一个支持root用户的虚拟机Google APLS
    在这里插入图片描述
    安装方法:
  • 1、打开AVD Manager
    在这里插入图片描述
  • 2、
    在这里插入图片描述
    完成next之后你会发现
    在这里插入图片描述
    选择要安装的Android版本next安装即可(只要后面后有Google APLS就可以)
    在这里插入图片描述
    直接finish
  • 3、用此虚拟机运行项目,即可。

注意如果你之创建过数据库或表以及在表中添加 的数据都会消失。这个道理其实很简单就相当于你换了一台新手机一样

3、SQLite数据库的简单操作

ctrl+K 清屏

查看所有数据库

 .databases

查看所有表

.tables

退出SQLite

.exit

打开某数据库

.open database_name

查询某一表中所有数据

select * from table_name;

更多操作见链接:https://www.runoob.com/sqlite/sqlite-tutorial.html

END

一.创建一个DataBaseHelper DataBaseHelper是一个访问SQLite的助类,提供两个方面的功能 1.getReadableDatebase(),getWriteableDatabase()可以获取SQLiteDatabase对象,通过 2.提供了onCreate()和onUpdate()两个回调函数,允许我们常见和升级数据库是进行使用 A、 在SQLiteOpenHelper的子类当中,必须要有的构造函数 B、该函数是在第一次创建数据库的时候执行,实际上是在第一次得到SQLiteDataBase对象的时候onCreate 二、创建一个实体person类并且给字段和封装 三、创建一个业务类对SQL的CRUD操作 1.getWritableDatabase()和getReadableDatabase()的区别 ,两个方法都可以获取一个用于操作数据库SQLiteDatabase实例 2.execSQL(增,删,改都是这个方法)和close();android内部有缓存可关闭也不关闭也行,查询rawQuery是方法 3.在分页有到Cursor(游标)取游标下一个值cursor.moveToNext(),用游标对象接数据 "select * from person limit ?,?" person不能加上where 关键字 4.在删除注意:sb.deleteCharAt(sb.length() - 1); 四、AndroidCRUD业务对SQLite的CRUD操作 1.ContentValues对象的使用 2.android内部insert添加数据的方法,而且values这个不给值也必须要执行,而主键是不是null的其他字段的值是为null 3.insert update query delete 五、单元测试类要注意的 AndroidCRUDService curdService = new AndroidCRUDService(this.getContext()); /* * 注意:getContext必须在我们使用前已经注解进去的,在使用前要实力化,而且是使用后才有上下文 *一般设置为局部对象 */ 六、AndroidManifest.xml的配置 <!-- 配置用户类库android.test.runner测试 --> package jll.sqlitedb; import android.content.Context; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteOpenHelper; import android.database.sqlite.SQLiteDatabase.CursorFactory; /** * *@author Administrator DataBaseHelper是一个访问SQLite的助类,提供两个方面的功能 * 1.getReadableDatebase(),getWriteableDatabase()可以获取SQLiteDatabase对象,通过 * 2.提供了onCreate()和onUpdate()两个回调函数,允许我们常见和升级数据库是进行使用 */ public class DataBaseHelper extends SQLiteOpenHelper { // 给一个默认的SQLite数据库名 private static final String DataBaseName = "SQLite_DB"; private static final int VERSION = 2; // 在SQLiteOpenHelper的子类当中,必须要有的构造函数 public DataBaseHelper(Context context, String name, CursorFacto
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Mr.史

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值