Android开发

《第一行代码》笔记6—数据存储

2019-02-24  本文已影响14人  aasdfghjkll

主要内容:
\diamond 1.向文件存储数据
\diamond 2.从文件读取数据
\diamond 3.用SharedPregerences存储
\diamond 4.从SharedPregerences读取数据
\diamond 5.SQLite数据库相关内容

0.Android中的持久化技术

数据持久化:将内存中的瞬时数据保存到存储设备中,存储在存储设备中的数据就拥有了持久状态。

三种数据持久化方式:文件存储SharedPreference存储数据库存储(这三种方式比起保存在SD卡中更简单、更安全)


1.文件存储数据


2. 从文件中读取数据

得到FileInputStream对象之后就可以通过Java流的方式将数据读取出来


3.SharedPregerences存储数据

用键值对的方式存储数据
支持多种不同的存储类型

实现三步曲:
(1)获取SharedPreferences.Editor对象
SharedPreferences.Editor editor=SharedPreferences("filename","oprate mode").edit()
(2)向SharedPreferences.Editor对象中添加数据,用putBoolean()putString()等方法
(3)调用apply()方法将添加的数据提交

存储路径: /data/data/<packagename>/shared_prefs/


4. 从SharedPreference中读取数据

SharedPreferences对象中的getBoolean("key","defaultvalue")方法进行读取


相关代码请看→这里←


其它:

在Android Studio 3.4.1出现了无法访问文件目录的情况,这里使用adb shell来修改权限↓↓↓

\triangleright adb shell的使用:
首先在系统变量种添加adb.exe的路径:
找到sdk路径下的platform-tools路径,将该路径添加到环境变量的path变量中

接着在cmd命令窗口就可以使用adb shell命令了:

上图中第二个箭头所指的位置需要做说明:
如果sdk在22时,出现的提示就和上图一样,虚拟机直接已经有了root权限,并且可以直接执行给data/data等目录添加权限的操作;如果sdk是26,要先通过su命令获取虚拟机的root权限,如果是目前的sdk28,则不能通过su命令获取root权限


0616更新

5.SQLite数据库相关内容

【目录】

  1. SQLite数据库简介
  2. SQLite数据库的使用
    (1). 创建数据库
    (2). 升级数据库
    (3). 添加数据
    (4). 更新数据
    (5). 删除数据
    (6). 查询数据
    (7). 用SQL语句直接操作数据

相关代码在这里

1. SQLite数据库简介

SQLite是一款轻量级的关系型数据库,可以存储大量复杂的关系型数据;运算速度非常快,占用内存通常只需要几百KB;支持标准SQL语法和ACID事务。

ACID事务,指数据库事务正确执行的四个基本要素的缩写。包含:原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability),一个支持事务(Transaction)的数据库,必须要具有这四种特性,否则在事务过程(Transaction processing)当中无法保证数据的正确性,交易过程极可能达不到交易双方的要求。


2. SQLite数据库的使用

1. 创建数据库

存放路径:/data/data/<package name>/databases/

1). 抽象类SQLiteOpenHelper主要内容:

2). 创建数据库的具体操作

3). 用Android SDK中自带的调试工具:adb查看创建的数据库和表

路径:sdk的platform-tools目录

Windows中adb的使用方法和具体步骤:
1.添加环境变量到path
2.进入控制台(命令adb shell)
3.进入到数据库所在目录下(data/data/com.example.databasetest/databases)用ls命令查看该目录下具有的文件
4.用sqlite3 **.db命令打开对应的数据库,用.table命令查看其中有哪些表(其中android_metadata表是每个数据库中都会生成的),用.schema命令查看建表语句
过程中遇到的问题:
①遇到了Permission denied相关错误,参考这里的方法,把模拟器版本将到6.0及以下就可以了;
②退出...>的方法:输入"[空格];",空格和分号,该方法来自这里

2. 升级数据库

3. 添加数据

出现过的小问题: adb中为什么select * from Book之后要先退出...>状态才能显示出表内数据?这是因为sql语句后要加;才完整

4. 更新数据

5. 删除数据

6. 查询数据

7. 用SQL语句直接操作表中数据


上一篇 下一篇

猜你喜欢

热点阅读