- 数据存储
本章习题
一、判断题
1.SQLite是Android自带的一个轻量级的数据库,支持基本SQL语法。( )
2.Android中的文件存储方式,分为内部存储方式和外部存储方式。( )
3.使用openFileOutput()方式打开应用程序的输出流时,只需要指定文件名。( )
4.当Android SDK版本低于23时,应用程序想要操作SD卡数据,必须在清单文件中添加权限。( )
5.SQLiteDatabase类的update()方法用于删除数据库表中的数据。( )
6.SQLite数据库的事务操作满足原子性、一致性、隔离性和持续性。( )
二、选择题
1.下列关于SharedPreferences存取文件的描述中,错误的是( )。
A.属于移动存储解决方式
B.SharedPreferences处理的就是key-value对
C.读取xml的路径是/sdcard/shared_prefs
D.文本的保存格式是xml
2.下列选项中,不属于getSharedPreferences方法的文件操作模式参数是( )。
A.Context.MODE_PRIVATE
B.Context.MODE_PUBLIC
C.Context.MODE_WORLD_READABLE
D.Context.MODE_WORLD_WRITEABLE
3.下列方法中,( )方法是sharedPreferences获取其编辑器的方法?
A.getEdit() B.edit() C.setEdit() D.getAll
4.Android对数据库的表进行查询操作时,会使用SQLiteDatabase类中的( )方法?
A.insert() B.execSQL() C.query() D.update()
5.下列关于SQLite数据库的描述中,错误的是( )
A.SqliteOpenHelper类有创建数据库和更新数据库版本的的功能。
B.SqliteDatabase类是用来操作数据库的。
C.每次调用SqliteDatabase的getWritableDatabase方法时,都会执行SqliteOpenHelper的onCreate()方法。
D.当数据库版本发生变化时,会调用SqliteOpenHelper的onUpgrade()方法更新数据库。
6.下列初始化SharedPreferences的代码中,正确的是( )
A.SharedPreferences sp = new SharedPreferences();
B.SharedPreferences sp = SharedPreferences.getDefault();
C.SharedPreferences sp = SharedPreferences.Factory();
D.SharedPreferences sp = getSharedPreferences();
三、简答题
1.简述数据库事物的4个基本要素。
2.简述Android数据存储的方式。
四、编程题
-
使用SQLite数据库的事务操作,编写一段模拟银行转账的逻辑代码。
-
编写一个用户登录的程序,要求登录的用户名和密码存入到SharedPreferences。
-
编写一个购物车程序,实现在界面中以列表的形式显示购物车的商品信息,商品信息包括商品名称、价格和数量功能,并能够对购物车中的商品信息进行增删改查。
第 5 章 数据存储
一、判断题
1、对 2、对 3、错 4、对 5、错 6、对
二、选择题
1、C 2、B 3、B 4、C 5、C 6、D
三、简答题
1.简述数据库事物的4个基本要素要素
答:事务的操作比较严格,他必须满足ACID,ACID是指数据库事务正确执行的四个基本要素的缩写,这些要素包括原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability),接下来针对这四个基本要素进行详细解释。
- 原子性:表示事务是一个不可再分割的工作单位,事务中的操作要么全部成功,要么全部失败回滚。
- 一致性:表示事务开始之前和结束之后,数据库的完整性没有被破坏。也就是说数据库事务不能破坏关系数据的完整性以及业务逻辑上的一致性。
- 隔离性:表示并发的事务是相互隔离的,也就是一个事务内部的操作都必须封锁起来,不会被其他事务影响到。
- 持久性:表示事务一旦提交后,该事务对数据做的更改便持久保存在数据库中,并不会被回滚,即使出现了断电等事故,也不会影响数据库中的数据。
2. 简述Android数据存储的方式
答:Android平台提供的五种数据存储方式,分别为文件存储、SharedPreferences、SQLite数据库、ContentProvider和网络存储,这些存储方式的特点如下。
- 文件存储:Android提供了openFileInput()和openFileOutput()方法来读取设备上的文件,其读取方式与Java中I/O程序是完全一样的。
- SharedPreferences:这是Android提供的用来存储一些简单的配置信息的一种机制,它采用了XML格式将数据存储到设备中。通常情况下,我们使用SharedPreferences存储一些应用程序的各种配置信息,如用户名、密码等。
- SQLite数据库:SQLite是Android自带的一个轻量级的数据库,他运算速度快,占用资源少,还支持基本SQL语法,一般使用他作为复杂数据的存储引擎,可以存储用户信息等。
- ContentProvider:Android四大组件之一,主要用于应用程序之间的数据交换,它可以将自己的数据共享给其他应用程序使用。
- 网络存储:需要与Android网络数据包打交道,将数据存储到服务器上,通过网络提供的存储空间来存储/获取数据信息。
java
1.使用SQLite数据库的事务操作,编写一段模拟银行转账的逻辑代码。
PersonSQLiteOpenHelper helper = new PersonSQLiteOpenHelper (getApplication());
//获取一个可读写的SQLiteDataBase对象
SQLiteDatabase db = helper.getWritableDatabase();
// 开始数据库的事务
db.beginTransaction();
try {
//执行转出操作
db.execSQL("update person set account = account-1000 where name =?",
new Object[] { "张三" });
//执行转入操作
db.execSQL("update information set account = account +1000 where name =?",
new Object[] { "王五" });
//标记数据库事务执行成功
db.setTransactionSuccessful();
}catch (Exception e) {
Log.i("事务处理失败", e.toString());
} finally {
db.endTransaction(); //关闭事务
db.close(); //关闭数据库
}