当前位置:网站首页>SharedPreferences and SQlite database
SharedPreferences and SQlite database
2022-08-05 05:38:00 【suiyue010211】
目录
Steps to create an array library
Classification of database operations
SharedPreferences的创建方法:
第一种:
通过getSharedPreferences创建
SharedPreferences 本身是一个接口,程序无法直接创建 SharedPreferences 的实例,只能通过 Context 提供的 getSharedPreferences(String name,int mode) 方法来获取 SharedPreferences 的实例,其中有两个参数:第一个参数用于指定 SharedPreferences 文件的名称(格式为 xml 文件),如果该名称的文件不存在则会创建一个.第二个参数用于指定操作的模式,如下:
MODE_PRIVATE:默认操作模式,只有本应用程序才可以对这个 SharedPreferences 文件进行读写.
MODE_WORLD_READABLE:其他应用对这个 SharedPreferences 文件只能读不能修改.
MODE_WORLD_WRITEABLE:这个 SharedPreferences 文件能被其他的应用读写.
MODE_MULTI_PROCESS:这个模式在 Android2.3 之后已经弃之不用了,可以省略.
第二种
通过getPreferences(int mode).
When only one is needed in the applicationSharedPreferences对象时,Use this method to get the current Activity 对应的 SharedPreferences,而不需要指定 SharedPreferences 的名字.
其中,参数 mode 有 4 种取值,分别是:
MODE_PRIVATE:默认方式,Applications that can only be created or have the same user as the created application ID application access.
MODE_WORLD_READABLE:Allow other applications to do so SharedPreferences 文件进行读操作.
MODE_WORLD_WRITEABLE:Allow other applications to do so SharedPreferences 文件进行写操作.
MODE_MULTI_PROCESS:in a multi-process application,When multiple processes are on the same one SharedPreferences 进行访问时,Every modification to this file is rechecked.
SharedPreferences有两大功能:
写入流程:
1.获取 Sharedprefenrences
SharedPreferences sp = getSharedPreferences("userinfo", MODE_PRIVATE);
2.借助Editor
SharedPreferences.Editor edit = sp1.edit();
3.写入数据
The data is in the form of key-value pairs
edit.putString("user",name);
edit.putString("pwd",pwd1);
4.提交数据
edit.commit();
读取流程
1.获取 Shareprefenrences
SharedPreferences sp = getSharedPreferences("userinfo", MODE_PRIVATE);
2.根据键获取值
String user = sp.getString("user", "");
String pwd = sp.getString("pwd", "");
SQlite数据库
SQlite优点:
SQLite是一款轻型的嵌入式数据库,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就足够了.它的处理速度比Mysql、PostgreSQL这两款著名的数据库都还快.SQLite提供一些C函数接口,可以用这些函数操作数据库.通过使用这些接口,传递一些标准 sql 语句(以 char * 类型)给 SQLite函数,SQLite就会为你操作数据库.
零配置,无需安装和管理配置
储存在单一磁盘文件中的一个完整的数据库
数据库文件可以在不同字节序的机器间自由共享
支持数据库大小至2TB
足够小,比目前流行的大多数数据库对数据的操作要快
SQLite 轻量 无需配置的 本地化
Steps to create an array library
- 借用Class,DBHelper 继承SQLiteOpenHelper
- 实现两个抽象方法 onCreate() onUpgrade() 创建一个带参的构造方法
- 在构造方法中 创建数据库
- 在onCreate() 方法中,创建表和插入数据
package com.wzk.day7;
import android.content.ContentValues;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import androidx.annotation.Nullable;
//Create the database in the constructor
public class DBHelper extends SQLiteOpenHelper {
public DBHelper(@Nullable Context context) {
super(context, "userinfo.db", null, 1);
}
@Override
public void onCreate(SQLiteDatabase db) {
//创建表
db.execSQL("create table userinfo(id interger primary key,user text,pwd text)");
//向表中插入数据
//1.写sql语句(推荐)
db.execSQL("insert into userinfo values(1,'root','0000')");
//SQlite自带
ContentValues values=new ContentValues();
values.put("id",8);
values.put("user","88");
values.put("pwd","99");
long w = db.insert("userinfo", null, values);
}
@Override
public void onUpgrade(SQLiteDatabase sqLiteDatabase, int i, int i1) {
}
}
SQlite的查询
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main2);
DBHelper dbHelper = new DBHelper(MainActivity2.this);
/*dbHelper.getWritableDatabase();*/
//查询
String sql="select * from userinfo";
//获取数据库对象
SQLiteDatabase db = dbHelper.getWritableDatabase();
//执行查询,Put the result into a vernier caliper
Cursor cursor = db.rawQuery(sql, null);
//取出结果
List<UserInfo> list = new ArrayList<>();
while (cursor.moveToNext()){
UserInfo userInfo=new UserInfo();
userInfo.setId(cursor.getInt(0));
userInfo.setUser(cursor.getString(1));
userInfo.setPwd(cursor.getString(2));
list.add(userInfo);
}
for (UserInfo userinfo:list) {
int id = userinfo.getId();
String user = userinfo.getUser();
String pwd = userinfo.getPwd();
Log.i("n", "id: "+id+"user"+user+"pwd"+pwd);
}
//释放资源
db.close();
}
SQlite的删除
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main3);
//创造实例
DBHelper dbHelper = new DBHelper(MainActivity3.this);
//获取数据库
SQLiteDatabase db = dbHelper.getWritableDatabase();
//执行删除
String sql="delete from userinfo where id=?";
db.execSQL(sql,new Object[]{1});
//释放资源
db.close();
Log.i("shujvku", "删除成功");
}
Classification of database operations
- Additions, deletions and modifications are divided into one category,返回的是受影响的行数
- The query returns the result set he queried.
边栏推荐
- 【Pytorch学习笔记】10.如何快速创建一个自己的Dataset数据集对象(继承Dataset类并重写对应方法)
- CVPR最佳论文得主清华黄高团队提出首篇动态网络综述
- Flink HA配置
- 【数据库和SQL学习笔记】5.SELECT查询3:多表查询、连接查询
- AIDL详解
- Flink HA安装配置实战
- CVPR best paper winner Huang Gao's team from Tsinghua University presented the first dynamic network review
- Spark ML学习相关资料整理
- flink中文文档-目录v1.4
- 如何停止flink job
猜你喜欢
Flink HA安装配置实战
【Pytorch学习笔记】9.分类器的分类结果如何评估——使用混淆矩阵、F1-score、ROC曲线、PR曲线等(以Softmax二分类为例)
[After a 12] No record for a whole week
【数据库和SQL学习笔记】4.SELECT查询2:排序(ORDER BY)、聚合函数、分组查询(GROUP BY)
ECCV2022 | RU&谷歌提出用CLIP进行zero-shot目标检测!
【数据库和SQL学习笔记】6.SELECT查询4:嵌套查询、对查询结果进行操作
CVPR 2022 |节省70%的显存,训练速度提高2倍
Day1:用原生JS把你的设备变成一台架子鼓!
Mysql-连接https域名的Mysql数据源踩的坑
记我的第一篇CCF-A会议论文|在经历六次被拒之后,我的论文终于中啦,耶!
随机推荐
The role of the range function
基于Flink CDC实现实时数据采集(三)-Function接口实现
周末作业-循环练习题(2)
MSRA提出学习实例和分布式视觉表示的极端掩蔽模型ExtreMA
ES6基础语法
Thread handler句柄 IntentServvice handlerThread
Matplotlib(三)—— 实践
如何跟踪网络路由链路&检测网络健康状况
HQL statement execution process
Machine Learning (1) - Machine Learning Fundamentals
【Kaggle项目实战记录】一个图片分类项目的步骤和思路分享——以树叶分类为例(用Pytorch)
el-pagination左右箭头替换成文字上一页和下一页
spark-DataFrame数据插入mysql性能优化
MySQL
【After a while 6】Machine vision video 【After a while 2 was squeezed out】
【数据库和SQL学习笔记】9.(T-SQL语言)定义变量、高级查询、流程控制(条件、循环等)
Flutter 3.0升级内容,该如何与小程序结合
华科提出首个用于伪装实例分割的一阶段框架OSFormer
基于Flink CDC实现实时数据采集(二)-Source接口实现
【Pytorch学习笔记】9.分类器的分类结果如何评估——使用混淆矩阵、F1-score、ROC曲线、PR曲线等(以Softmax二分类为例)