Android数据持久化技术

每一款Android应用除了界面外,需要与用户进行交互,网络数据获取等功能。因此,数据的存储对应用来说也举足轻重。

Android数据存储有下面五种方式:

1> 文件存储

2> SharedPreferences存储

3> SQLite

4> ContentProvider

5> 网络存储

在这里,主要介绍前三种数据存储,即持久化存储。

1> 文件存储

将数据存储到文件中:

public void save(){
    FileOutputStream out = null;
    BufferedWriter writer = null;
    out = openFileOutput("data",Context.MODE_PRIVATE);
    writer = new BufferedWriter(new OutputStreamWriter(out));
    writer.write(text);
}

最终文件data将保存在/data/data/<package_name>/files/目录下。

从文件读取数据:

public String read(){
    FileInputStream in = null;
    BufferedReader reader = null;
    StringBuilder content = new StringBuilder();

    try{
        in = openFileInput("data");
        reader = new BufferedReader(new InputStreamWriter(in));
        String line  = " " ;
        while((line = reader.readLine() != null){
             content.append(line);
        }
    }catch (IOException e){
        e.printStackTrace();
    }
    return content.tostring();
}

2> SharedPreferences存储

不同于文件的存储,sharedPreferences的存储是采用键值对的形式实现的。

三种获取sharedPreferences对象的方法。

1> Context类中的getSharedPreferencds()方法

2> Activity类中的getPreferencds()方法

这个方法和Context类中的getSharedPreferencds()方法很类似,不过只接收一个操作模式参数,因为该方法会自动将当前活动的类名作为SharedPreferences的文件名。

3> PreferenceManager类中的getDefaultSharedPreferences()方法

这是一个静态方法,它接受一个context参数,并自动使用当前应用程序包名作为前缀命名SharesPreferences文件。

储存数据:

SharesPreferences.Editor editor = getSharesPreferences("data",MODE_PRIVATE).edit();
editor.putInt("age",18);
editor.putString("name","Tom");
editor.apply();

读取数据:

SharedPreferences pref = getSharedPreferences("data","MODE_PRIVATE");
String name = pref.getString("name","");
Int age = pref.getInt("age","0");

SQLite数据库存储

Android为了更方便的管理使用数据库,提供了SQLiteOpenHelper帮助类。SQLiteOpenHelper是一个抽象类,定义了两个抽象方法:onCreate(),创建数据库;onUpgrade(),升级数据库。其中还有两个重要的实例方法,getReadableDatabase()和getWritableDatabase(),两个方法都可以创建或打开一个现有数据库,并返回一个可对数据库进行读写操作的对象。不同的是,当数据库不可写入时(比如磁盘空间已满),getReadableDatabase返回的对象将以读的方式去打开数据库,而getWritableDatabase方法将出现异常。

1> 新建类继承SQLiteOpenHelper

public class SQLHelper extends SQLiteOpenHelper {
    public SQLHelper(Context context, String name, SQLiteDatabase.CursorFactory factory, int version) {
        super(context, name, factory, version);
    }

    public static final String CREATE_BOOK = "create table Book("
            + "id integer primary key autoincrement,"
            + "author text,"
            + "price real,"
            + "pages integer,"
            + "name text)";
    @Override
    public void onCreate(SQLiteDatabase db) {
        db.execSQL(CREATE_BOOK);
        Log.d("azheng","compelte!");
    }

    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {

    }
}

2> MainActivity里创建数据库

public class MainActivity extends AppCompatActivity implements View.OnClickListener{
    private Button mButton;
    private SQLHelper mSQLHeper;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        mSQLHeper = new SQLHelper(this,"Book.db",null,1);
        mButton = (Button) findViewById(R.id.button);
        mButton.setOnClickListener(this);
    }

    @Override
    public void onClick(View v) {
        switch (v.getId()){
            case R.id.button:
                mSQLHeper.getWritableDatabase();
        }
    }
}

这样,数据库就写入成功了。

数据库操作:

增加:

SQLiteDatabase db = mSQLHelper.getWritableDatabase();
ContentValues values = new ContentValues();
values.put("name","Tom");
values.put("age","18");
db.insert("Book",null,values);

更新数据库:

db.update("Book",values,""name = ? ,new String[] {"Tom"});

表示更新名字为Tom的数据。

删除:

db.delete("Book","page > ?",new String[] {"500"});

表示删除页数大于500的数据。

查找数据库:

select * from Book

查找命令相对来说比较多,且更复杂,需要在操作数据库的时候不断熟练。

时间: 2024-08-24 22:49:26

Android数据持久化技术的相关文章

Android数据存储技术五大方式总结

本文介绍Android平台进行数据存储的五大方式,分别如下: 1 使用SharedPreferences存储数据 2 文件存储数据 3 SQLite数据库存储数据 4 使用ContentProvider存储数据 5 网络存储数据 下面详细讲解这五种方式的特点 第一种: 使用SharedPreferences存储数据     适用范围:保存少量的数据,且这些数据的格式非常简单:字符串型.基本类型的值.比如应用程序的各种配置信息(如是否打开音效.是否使用震动效果.小游戏的玩家积分等),解锁口令密码等

iOS开发数据持久化技术01——NSUserDefault介绍

有疑问的请加qq交流群:390438081 我的QQ:604886384(注明来意) 微信:niuting823 首先说下什么是数据持久化技术 NSString *str = @"hello world"; ->内存 实际上就是将数据存储到硬盘上,针对于iOS应用程序是存储到沙盒中. . NSUserDefault介绍 1 是系统提供的自定义的类,可以随时在需要使用的地方声明对象,并随时需要的时候取出对象 2 支持的对象类型:NSString, NSNumber, NSData,

Android数据持久化存储

Android数据持久化存储共有四种方式,分别是文件存储.SharedPreferences.Sqlite数据库和ContentProvider.在本篇幅中只介绍前面三种存储方式,因为ContentProvider属于android四大组件之一,所以它的数据存储方式在介绍四大组件的时候说明. 1.文件存储 文件存储不对存储的内容进行任何的格式化处理,所有数据都是原封不动地保存到文件当中的,因而它比较适合用于存储一些简单的文本数据或二进制数据. 文件存储有两种方式,一是存储到手机内存中(memor

数据持久化 技术比较

  [数据存储]coredata.sqlite.fmdb和sqlitepersistentobject 管理提醒: 本帖被 angellixf 从 OS X开发讨论区 移动到本区(2014-02-12) 分享类型:应用开发相关 在ios开发过程中,经常需要用到数据持久化工作.对于基本的配置信息等,NSUserDefault已经可以满足要求,但是对于大部分需要存储的信息,主要的方式有coredata建模或者sqlite写数据库的方法进行存储.现在针对coredata.sqlite以及常用的sqli

iOS中常用的四种数据持久化技术

iOS中的数据持久化方式,基本上有以下四种:属性列表 对象归档 SQLite3和Core Data 1.属性列表涉及到的主要类:NSUserDefaults,一般 [NSUserDefaults standardUserDefaults]就够用了 @interface User : NSObject <NSCoding>@property (nonatomic, assign) NSInteger userID;@property (nonatomic, copy) NSString *nam

饿了么开源项目:便捷高效的Android数据持久化存储框架

版权所有.所有权利保留. 欢迎转载,转载时请注明出处: http://blog.csdn.net/xiaofei_it/article/details/51436972 Android应用开发时经常要对许多数据进行持久化存储,便于以后访问. 对于int.double.boolean这些基本数据,可以使用SharedPreference.对于一些对象,往SharedPreference里存储的时候需要使用序列化技术.如果对象很大,或者碰到列表.数组等结构,就必须使用数据库.而使用数据库比较麻烦,成

Android数据持久化的方式总结

一.SharedPreferences 以.xml格式的文件进行存储,存储位置在data/data/package/shared_prefs/目录下. 存储步骤: 1.创建文件:getSharedPreferences(name, mode);name为文件名,如果有此文件存在,不再创建,直接用此文件. 2.获取文件编辑器:SharedPreferences.Editor se=preferences.edit(); 3.存入数据:se.putString("et_content",

Hibernate 数据持久化技术(一)

Hibernate框架访问数据库 案例:读取新闻表的所有新闻到页面上 步骤:(1)配置SQL Server配置管理器 (2)MyEclipse连接上数据库 (3)加入Hibernate框架 (4)为数据表做出映射(News表→News类  表记录→类的实例) (5)编写代码 1.微软JDBC连接SQL SERVER 2005须进行如下设置: 1.打开SQL Server Configuartion Manager,左边窗口扩展SQL SERVER 2005 网络配置, 选择SQLEXPRESS 

iOS开发数据持久化技术02——plist介绍

有疑问的请加qq交流群:390438081 我的QQ:604886384(注明来意) 微信:niuting823 1. 简介:属性列表是一种xml格式的文件,扩展名.plist: 2. 特性:plist文件是以 key-value的形式来保存数据 3. 支持类型:NSString, NSDictionary, NSArray, NSData, NSNumber等基本类型 4. 如何创建plist属性文件 4.1 直接使用xcode创建 4.2 使用代码来创建:可以将NSArray (NSMuta