当前位置:网站首页>android基础 [超级详细android存储方式解析(SharedPreferences,SQLite数据库存储)]
android基础 [超级详细android存储方式解析(SharedPreferences,SQLite数据库存储)]
2022-08-04 05:28:00 【手下留键盘】
目录
1.Android存储方式
1.1Android共有5中存储方式:
SharedPreferences
内部存储(Internal Storage)
外部存储(External Storage)
SQLite数据库存储
网络存储(现阶段主流)
今天我们主要讲解SharedPreferences(文件存储)和SQLite数据库存储。
2.SharedPreferences(文件存储)
2.1简介
文件,相当于properties文件,数据存储都是使用键值对来存储。
2.2写入
a.获取SharedPreferences(①:getSharedPrefernces,②:getPrefernces)
①和②获取方式的区别是前者两个参数(存储文件名称和操作模式(int mode)),后者只有操作模式一个参数。
b.借助Editor,向SharedPreferenxce中写入数据。
c.写入数据,只能写入原始基本数据(boolean,float,int,long,String),不能写复合型数据。
d.提交数据。
调用 SharedPreferences.Editor 的 commit() 方法将更新提交到 SharedPreferences 中。
String name="zs";
String pwd="123";
SharedPreferences sp= getSharedPreferences("logininfo",MODE_PRIVATE);
SharedPreferences.Editor edit = sp.edit();
edit.putString("name",name);
edit.putString("pwd",pwd);
edit.commit();
2.3读取
a.获取sharedPrefernces。
b.获取数据。
SharedPreferences sp1= getSharedPreferences("logininfo",MODE_PRIVATE);
String sp_name = sp1.getString("name", "");
String sp_pwd = sp1.getString("pwd", "");
3.SQLite数据库存储
3.1简介
特点:轻量,无需配置。
缺点:本地化。
3.2创建
a.用Class,DBHelper 继承SQLiteOpenHelper。
public class DBHelper extends SQLiteOpenHelper {
}
b.实现两个抽象方法 onCreate() onUpgrade() 创建一个带参的构造方法。
public class DBHelper extends SQLiteOpenHelper {
public DBHelper(@Nullable Context context) {
}
@Override
public void onCreate(SQLiteDatabase sqLiteDatabase) {
}
@Override
public void onUpgrade(SQLiteDatabase sqLiteDatabase, int i, int i1) {
}
}
c.在构造方法中 创建数据库。
public class DBHelper extends SQLiteOpenHelper {
public DBHelper(@Nullable Context context) {
super(context, "school.db", null, 1);
}
@Override
public void onCreate(SQLiteDatabase sqLiteDatabase) {
}
@Override
public void onUpgrade(SQLiteDatabase sqLiteDatabase, int i, int i1) {
}
}
d.在onCreate() 方法中,创建表和插入数据。
public class DBHelper extends SQLiteOpenHelper {
public DBHelper(@Nullable Context context) {
super(context, "school.db", null, 1);
}
@Override
public void onCreate(SQLiteDatabase sqLiteDatabase) {
sqLiteDatabase.execSQL("create table student(sid integer primary key,sname text,sex text)");
sqLiteDatabase.execSQL("insert into student values(1,'zs','男')");
}
@Override
public void onUpgrade(SQLiteDatabase sqLiteDatabase, int i, int i1) {
}
}
边栏推荐
猜你喜欢
随机推荐
字符串常用方法
JS实现上一个、下一个、置顶、置底操作
关系型数据库-MySQL:体系结构
(十二)树--哈夫曼树
thymeleaf中onclick事件动态传递参数问题
8.30难题留坑:计数器问题和素数等差数列问题
程序员的财富观
判断字符串是否有子字符串重复出现
CTFshow—Web入门—信息(9-20)
(五)栈及其应用
Linux环境下redis的下载、安装和启动(建议收藏)
自动化运维工具Ansible(2)ad-hoc
纳米级完全删除MYSQL5.7以及一些吐槽
多个gcc/glibc版本的共存及指定gcc版本的编译
webrtc中视频采集实现分析(二) 视频帧的分发
ISCC2021———MISC部分复现(练武)
IP地址查询
(六)递归
SQL练习 2022/7/4
关系型数据库-MySQL:错误日志(log_error)