android数据存储
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()
移动光标到上一行
更多相关文章
- Android中Intent传递对象的两种方法(Serializable,Parcelable)!
- 打造android ORM框架opendroid(二)——自动创建数据库
- Ubuntu共享WiFi(AP)给Android方法【修正版】
- 用Fiddler抓取Android、Iphone网络数据包
- Android实现关机、重启设备
- 浅谈Java中Collections.sort对List排序的两种方法
- mybatisplus的坑 insert标签insert into select无参数问题的解决
- python起点网月票榜字体反爬案例
- Python list sort方法的具体使用