android数据存储——随笔

SharePreferences使用总结:
对于android应用来说,最适合采用SharePreference保存数据,它是一个轻量化级的存储类,适合用于保存软件配置参数。
1.使用SharePreferences保存数据
SharedPreferences sharedPreferences = getSharedPreferences(“namez”,mode);
Editor editor = sharePreferences.edit();//获取编辑器
editor.putString(“name”,“四种模式”);
editor.putInt(“age”,4);
editor.commit();//提交修改
四种模式 Context.MODE_PRIVATE = 0; Context.MODE_APPEND = 32768;Context.MODE_READABLE =1; Context.MODE_WRITEABLE =2;

2.使用SharePreferences读取数据
SharedPreferences sharePreferences = getSharePreferences(“name”)
String name = sharePreferences.getString(“name”,"");
int age = sharePreferences.getInt(“age”,1);

SharePreferences类供6开发人员保存和获取数据基本类型的键值对。该类主要用于基本类型,boolean,float,in,long,string
SharePreferences类的数据以xml文件方式存储在本地
位置://文件存放地址//data/data/报名/share_pres
文件数据保存模式 Context.MODE_PRIVATE用的最多

使用步骤 1调用SharePreferences对象edit()获取sharePreferences引用对象 2调用putBoolean(),putString()等方法增加值3使用commit()方法提交新值

SQLite
采用的是动态数据类型,会根据存入值自动判断。
BLOB: 值是BLOB数据块,以输入的数据格式进行存储。如何输入就如何存储,不改变格式
VARCHAR(n):长度不固定且其最大长度为 n 的字串,n不能超过 4000。
REAL: 所有值都是浮动的数值,被存储为8字节的IEEE浮动标记序号.

SQLiteDatebase的常用方法
openOnCreateDatebase(String path,SQLiteDatabase.CursorFactory factory)
execsSQL(String sql)

contentValues类型的一个封装了列名称和列值的Map
whereArgs删除条件数组
Cusor类是来实现查询数据,当我们使用SQLiteDatabase.query()方法是,会得到一个Cursor对象,Cusor指向的就是每一条数据

SQLiteOpenHelper
该类是SQLiteDatebase一个辅助类,主要生成一个数据库,并对数据库的版本进行管理。是一个抽象类,我们通常需要继承它,并且实现里面的3个函数:
onCreate(SQLiteDatebase) onUpgrade(SQLiteDatabase,int,int) onOpen(SQLiteDatana)

Android app典型数据存取层设计示例
adapter DataAdapter负责实现数据的显示
db DBSchema集中保存数据库相关参数常量、SQL命令等
MyDataSource实现CRUD,也可以使用Repository
MyDBHelper创建与升级数据库
model 将应用要处理的数据封装成数据实体类

Android数据绑定库
数据绑定库自动生成将布局中的视图与数据对象绑定所需的类
数据绑定布局文件:
layout后跟data元素和view根元素



… android:text="@{user.firstName}"

绑定数据:ActivityMainBing binding = ActivityMainBinding.inflate(getLayoutInflater());
数据绑定库允许你对象,字段或集合可观察。Observable接口
双向数据绑定:@={},其中重要的包括符号“=”,接受数据的变化的属性,并在同一时间收听用户的更新,如果要对自定义属性使用双向数据绑定,则需要使用@InverseBindingAdapter和@InverseBindingMethod注释。

ORM框架:ORM主要是把数据库的关系数据映射为程序的对象
GreenDAO的使用,创建一个二级工程:“generator project”,它的任务就是为了domain生成具体的代码。
核心类 在工程中引入greenDan的核心jar包:greenDao.jar.
DaoMaster: daomaster以一定的模式持有数据库对象(SQLiteDatabase)并管理一些DAO类。有一个静态的方法创建和drop数据表。
DaoSession:管理指定模式下所有可用的DAO对象,你可以通过某个get方法获取到。DaoSession提供一些通用的持久化方法,比如对实体进行插入、加载、更新、刷新和删除。
DAOs(Data access objects):
能够持久访问和查询实体类
Entiti 自动生成的代码,一般情况下与javaBean对象的属性一一对应
@Id一般会选择long属性作为Entity ID(数据库中的主键)autoincrement=true表示主键会自增如果false就会使用旧值
@Property 可以自定义一个该属性在数据库中的名称,默认情况下数据库中该属性名是Bean对象中的
@NotNull 确保属性值不会为null值
@Transient 使用该注释的属性不会被存入数据库中;
@Unique 将属性变成唯一约束属性
@Generated 提示开发者该属性不能被修改
数据访问对象,用于实体的持久化和查询。对于每一个实体,greenDao会生成一个DAO,相对于DaoSession它拥有更多持久化的方法。
创建schema
Schema schema = new Schema;
schema.setDefaultJavaPackage(“设置dao包默认的位置”);
创建entity
Entity user = schema.addEntity(“user”);
user.implementsSerializable();//多表关联前需序列号
user.addIdProperty();//添加主键
user.addStringProperty("").notNull();//添加列并非空
生成DAO文件
new DanGenerator().generateAll(schema,“app/src/main/java-gen”)//生成dao文件

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值