知识总结------数据存储

1、SharePreferences适用情形?使用中需要注意什么?

保存登录用户名密码等情形,应注意多进程并发读的时候数据可能不准确。

需要注意:getSharedPreferences(“User”, Context.MODE_PRIVATE)方法中第二个参数需要了解Android的四种枚举方式下面是详细的解释: 

私有模式 

Context.MODE_PRIVATE 的值是 0; 

①只能被创建这个文件的当前应用访问 

②若文件不存在会创建文件;若创建的文件已存在则会覆盖掉原来的文件

 

追加模式 

Context.MODE_APPEND 的值是 32768; 

①只能被创建这个文件的当前应用访问 

②若文件不存在会创建文件;若文件存在则在文件的末尾进行追加内容

 

可读模式 

Context.MODE_WORLD_READABLE的值是1; 

①创建出来的文件可以被其他应用所读取

可写模式 

Context.MODE_WORLD_WRITEABLE的值是2 

①允许其他应用对其进行写入。

2:了解SQLite中的事务处理吗?是如何做的?

使用SQLiteDatabase的beginTransaction()方法可以开启一个事务,程序执行到endTransaction() 方法时会检查事务的标志是否为成功,如果程序执行到endTransaction()之前调用了setTransactionSuccessful() 方法设置事务的标志为成功则提交事务,如果没有调用setTransactionSuccessful() 方法则回滚事务。多用于大量数据操作时,能明显减少耗时。

https://blog.csdn.net/a443453087/article/details/7222247

3:使用SQLite做批量操作有什么好的方法吗?

即使用事务处理进行优化,默认SQLite的数据库插入操作,如果没有采用事务的话,它每次写入提交,就会触发一次事务操作,而这样几千条的数据,就会触发几千个事务的操作,这就是时间耗费的根源

 

4:如果现在要删除SQLite中表的一个字段如何做?

SQLite目前还不支持drop column,所以必须想出另外一种方法来进行表字段的删除。

如下sql语句会复制一个和record表一样表结构的temp表出来,但是我们想要的是去除某一个字段(例如去除record表中的name字段,就不要复制它就好了),所以sql语句如下:

create table temp as select recordId, customer, place, time from record where 1 = 1;  

这样复制出来的表就会缺少“name”字段,然后我们删除旧表并修改新表名即可。

5:使用SQLite时会有哪些优化操作?

https://blog.csdn.net/phenixyf/article/details/70597232

 

看一下这篇文章:https://www.jianshu.com/p/5223a77a2a32

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值