在Android中一共提供4种数据存储方式,但是由于存储这些数据都是其应用程序私有的,所以如果需要在其他应用程序中使用这些数据,就要使用Android提供的Content Provider(数据共享)。Android中4种数据存储方式如下:

Shared Preferences:用来存储"key-value paires"格式数据,它是一个轻量级的键值存储机制,只可以存储基本数据类型。(主要是针对系统配置信息的保存,比如给程序界面设置了音效,想在下一次启动的时候还能够保留上次设置的音效)

Files:它通过FileInputStream和FileOutputStream对文件进行操作。但是在Android中,文件时一个应用程序私有的,一个应用程序无法读写其他应用程序的文件。(把需要保存的东西通过文件的形式记录下来,当需要这些数据时,通过读取这个文件来获得这些数据即可)

SQLite:Android提供的一个标准数据库,支持SQL语句。

Network:通过网络来存储和获得数据。

数据存储之Shared Preferences

shared Preferences类似于我们常用的ini文件,用来保存应用程序的一些属性,在Android平台常用于存储较简单的参数设置。例如,可以通过它保存上一次用户所做的修改或者自定义参数设定,当再次启动程序后依然保持原有的设置。通过getPreferences()方法来获得Preferences对象,通过"SharedPreferences.Editor editor = uiState.edit();"取得编辑对象,然后通过"editor.put...()"方法添加数据,最后通过commit()方法保存这些数据,如果不需要与其他模块共享数据,可以使用Activity.getPreferences()方法保持数据私有。

数据存储之File

用文件存储数据可以通过openFileOutput方法打开一个文件,通过load方法来获取文件的数据,通过deleteFile()方法可以删除一个指定文件。

数据储存之Network

通过网络来获取和保存数据资源,这个方法需要设备保持网络连接状态,所有相对存在一些限制。

Android数据库编程

SQLite编程

SQLite数据库的操作一般包括:创建数据库、打开数据库、创建表、向表中添加数据、从表中删除数据、修改表中的数据、关闭数据库、删除指定表、删除数据库和查询表中的某条数据。

1.创建和打开数据库

在Android创建和打开一个数据库都可以使用openOrCreateDatabase方法来实现,它会自动去检测是否存在这个数据库,如果存在则打开,如果不存在创建一个数据库;创建成功则返回一个SQLiteDatabase对象,否则抛出异常FileNotFoundException。


/*创建一个名为"Example.db"的数据库,并返回一个SQLiteDatabase对象*/mSQLiteDatabase = this.openOrCreateDatabase("Example",MODE_PRIVATE,NULL);

2.创建表

一个数据库可以包含多个表,每一条数据都保存在一个指定的表中,要创建表可以通过execSQL方法来执行一条SQL语句。execSQL能执行大部分的SQL语句

String <span style="font-family:SimSun;">SQL_CREATE_TABLE</span> = "CREATE TABLE mtable(_id INTERGER PRIMARY KEY, num INTERGER,data TEXT)";mSQLiteDatabase.execSQL(<span style="font-family:SimSun;">SQL_CREATE_TABLE</span>);

3.向表中添加一条数据

使用execSQL方法来执行一条“插入”的SQL语句

String SQL_INSERT_DATA = "INSERT INTO mtable (_id,num,data) values (1,1,'插入SQL语句')";mSQLiteDatabase.execSQL(SQL_INSERT_DATA);

4.从表中删除数据

要删除数据可以使用delete方法,删除字段"_id"等于1的数据,

mSQLiteDatabase.delete("Example.db","WHERE _id = 1",null);

也可以通过execSQL方法执行SQL语句删除数据:

String DELETE_DATA = "DELETE FROM talbe1 WHERE  _id = 1";mSQLiteDatabase.execSQL(DELETE_DATA);

5.修改表中数据

可以使用update方法来更新一条数据,下面来修改"num"值为0的数据,

ContentValues cv = new ContentValues();cv.put(TABLE_NUM,3);cv.put(TABLE_DATA,"修改后的数据");mSQLiteDatabase.update("table1",cv,"num"+"="+Integer.toString(0),null);

6.关闭数据库

直接使用SQLiteDatabase的close方法

mSQLiteDatabase.close();

7.删除指定表

mSQLiteDatabase.execSQL("DROP TABLE table1");

8.删除数据库

this.deleteDatabase("Example.db")

9.查询数据中的某条数据

在Android中查询数据时通过Cursor类来实现的,当我们使用SQLiteDatabase.query()方法时,会得到一个Cursor对象,Cursor指向的就是每一条数据。

Cursor类常用方法

close()

关闭游标,释放资源

copyStringToBuffer(int columnIndex, CharArrayBuffer buffer)

在缓冲区中检索请求的列的文本,将将其存储

getColumnCount()

返回所有列的总数

getColumnIndex(String columnName)

返回指定列的名称,如果不存在返回-1

getColumnIndexOrThrow(String columnName)

从零开始返回指定列名称,如果不存在将抛出IllegalArgumentException 异常。

getColumnName(int columnIndex)

从给定的索引返回列名

getColumnNames()

返回一个字符串数组的列名

getCount()

返回Cursor 中的行数

moveToFirst()

移动光标到第一行

moveToLast()

移动光标到最后一行

moveToNext()

移动光标到下一行

moveToPosition(int position)

移动光标到一个绝对的位置

moveToPrevious()

移动光标到上一行


更多相关文章

  1. Android中Intent传递对象的两种方法(Serializable,Parcelable)!
  2. 打造android ORM框架opendroid(二)——自动创建数据库
  3. Ubuntu共享WiFi(AP)给Android方法【修正版】
  4. 用Fiddler抓取Android、Iphone网络数据包
  5. Android实现关机、重启设备
  6. 浅谈Java中Collections.sort对List排序的两种方法
  7. mybatisplus的坑 insert标签insert into select无参数问题的解决
  8. python起点网月票榜字体反爬案例
  9. Python list sort方法的具体使用

随机推荐

  1. Android应用程序全屏显示
  2. Android中从服务器端向客户端传数据[通过
  3. 给点击的布局加上背景
  4. Android(安卓)使用自定义cursorAdapter
  5. android 科大讯飞语音唤醒demo
  6. Android实现学生管理系统
  7. android 开源组件合集-非UI篇
  8. android-修改TextView中部分文字的颜色
  9. android ndk之常用命令
  10. Android简易计算器