目录

SharedPreferences的创建方法:

第一种:

通过getSharedPreferences创建

第二种

通过getPreferences(int mode)。

SharedPreferences有两大功能:

写入流程:

1.获取 Sharedprefenrences

2.借助Editor

3.写入数据

4.提交数据

读取流程

1.获取 Shareprefenrences

2.根据键获取值

SQlite数据库

SQlite优点:

创建数组库的步骤

SQlite的查询

SQlite的删除

数据库操作的分类


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)。

当应用程序中仅需要一个SharedPreferences对象时,使用该方法获取当前 Activity 对应的 SharedPreferences,而不需要指定 SharedPreferences 的名字。

其中,参数 mode 有 4 种取值,分别是:

  • MODE_PRIVATE:默认方式,只能被创建的应用程序或者与创建的应用程序具有相同用户 ID 的应用程序访问。

  • MODE_WORLD_READABLE:允许其他应用程序对该 SharedPreferences 文件进行读操作。

  • MODE_WORLD_WRITEABLE:允许其他应用程序对该 SharedPreferences 文件进行写操作。

  • MODE_MULTI_PROCESS:在多进程应用程序中,当多个进程都对同一个 SharedPreferences 进行访问时,该文件的每次修改都会被重新核对。

SharedPreferences有两大功能:

写入流程:

1.获取 Sharedprefenrences

        SharedPreferences sp = getSharedPreferences("userinfo", MODE_PRIVATE);

2.借助Editor

SharedPreferences.Editor edit = sp1.edit();

3.写入数据

数据都是键值对的形式

                    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 轻量 无需配置的 本地化

创建数组库的步骤

  1. 借用Class,DBHelper 继承SQLiteOpenHelper
  2. 实现两个抽象方法 onCreate() onUpgrade() 创建一个带参的构造方法
  3. 在构造方法中 创建数据库
  4. 在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;
//在构造方法里创建数据库
public class DBHelper extends SQLiteOpenHelper {public DBHelper(@Nullable Context context) {super(context, "userinfo.db", null, 1);}@Overridepublic 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);}@Overridepublic 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();//执行查询,将结果放进游标卡尺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的删除

    @Overrideprotected 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", "删除成功");}

数据库操作的分类

  • 增删改分为一类,返回的是受影响的行数
  • 而查询返回的是他查询到的结果集。

SharedPreferences和SQlite数据库相关推荐

  1. Android数据存储、文件存储、SQLite数据库简单使用、 sharedPreferences存储(五)

    文章目录 5 数据存储 5.1 数据的存储方式 5.2 文件存储 5.2.1 将数据存入文件中 5.2.2 从文件中读取数据 5.2.3 实战演练-保存QQ账号和密码(内部存储) 5.2.4 实战演练 ...

  2. 使用嵌入式关系型SQLite数据库存储数据

    除了可以使用文件或SharedPreferences存储数据,还可以选择使用SQLite数据库存储数据. 在Android平台上,集成了一个嵌入式关系型数据库-SQLite,SQLite3支持 NUL ...

  3. 【转】Android使用嵌入式关系型SQLite数据库存储数据【学习记录】

    为什么80%的码农都做不了架构师?>>>    除了可以使用文件或SharedPreferences存储数据,还可以选择使用SQLite数据库存储数据. 在Android平台上,集成 ...

  4. Android数据的四种存储方式SharedPreferences、SQLite、Content Provider和File (四) —— ContentProvider...

    ContentProvider是安卓平台中,在不同应用程序之间实现数据共享的一种机制.一个应用程序如果需要让别的程序可以操作自己的数据,即可采用这种机制.并且此种方式忽略了底层的数据存储实现,Cont ...

  5. Android的sqlite使用外部,Android 使用外部已经建立好的sqlite数据库

    最近项目需要通过电话号码查询归属地,决定直接在本地sqlite的数据库进行查询,没必要去访问网络(虽然最后还是决定还是将数据库放在服务器上 ) 一 首先先将外部的sqlite数据库放入assets文件 ...

  6. Android数据的四种存储方式SharedPreferences、SQLite、Content Provider和File 之 —— SharedPreferences...

    除了SQLite数据库外,SharedPreferences也是一种轻型的数据存储方式,它的本质是基于XML文件存储key-value键值 对数据,通常用来存储一些简单的配置信息.其存储位置在/dat ...

  7. android入门基础笔记,Sqlite数据库下载

    * 移动通讯技术的发展: 第一代通讯技术:模拟信号 工作频段   缺点:保密性差 第二代通讯技术: 体积越来越小  数字信号(加密)   短信  彩信 第三代通讯技术: 数字信号   可处理图像.音乐 ...

  8. android用户头像保存,Android的登陆注册(sharedpreferences和SQLite保存以及头像上传显示...

    [实例简介] ①该资源中片段代码截取于网上,特别感谢网上的大神 ②该Demo是一个android的简单注册登录,包括: ∷SQLite的注册数据保存 ∷注册登录数据的shakeAnimation验证 ...

  9. android如何实现用户注册功能,Android 实现简单的登录注册功能(SharedPreferences和SQLite)...

    最近恰好作了一个Android的登陆注册界面,将数据利用SharedPreferences或者SQLite绑定到Android程序中,实现简单的登录注册功能,本文未涉及到与服务器的交流.java 首先 ...

最新文章

  1. 上升沿_为什么示波器上升时间 Tr=0.35/BW ?
  2. 解决 MSChart控件 X轴坐标显示不全的问题
  3. CTF web题总结--爆破用户名密码
  4. ubuntu 定时执行任务at
  5. 分享百度文库提交成功的八大因素
  6. 学好Java的10个建议
  7. 什么?你竟然还没有用这几个chrome插件? 1
  8. 技术宅的乐趣!网友编写出《流浪地球》“春节十二响”C语言源码
  9. Vue中如何实现代码高亮功能?
  10. 使用PL/SQL删除百万条记录的大表
  11. [傅里叶变换及其应用学习笔记] 十五. 傅里叶变换在衍射上的应用
  12. C# 怎么生成DLL文件(转)
  13. 饿了么,美团外卖红包小程序欢迎了解一下(0基础搭建自己的外卖分销cps小程序)
  14. asm磁盘头全部损坏数据0丢失恢复----惜分飞
  15. 整理了上千个Python类库,简直太酷啦!
  16. iOS获取UUID,并使用keychain存储,可用于封设备
  17. Visual C++ 2015 Redistributable安装失败,错误代码0x80240017?
  18. 凑巧,电脑的双系统删除了2345的残留服务和缓存!
  19. Leetcode 208、实现Trie(前缀树)
  20. 学生表(Student)、课程表(Course)、成绩表(Score)以及教师信息表(Teacher)...

热门文章

  1. 项目经理常用的12大工具及5大最佳项目管理软件
  2. SVN服务器搭建、客户端安装超详细图解教程
  3. Python爬取雪球7*24小时信息
  4. DbVisualizer 9 解决中文乱码问题(win7,win10)
  5. AnimationEvent 'XXX' has no receiver!
  6. 第5章第17节:案例:使两张幻灯片中的图片进行平滑切换 [PowerPoint精美幻灯片实战教程]
  7. 网站后台——用户上传图片剪切
  8. 导航AGV设计方案 此方案为市面上成熟的磁导航AGV设计方案
  9. 三星很陶醉:爷会成为智能手机之王
  10. gitee上传大小超过100M文件