android:四种存储数据方式SharedPreferences、SQLite、Content Provider、File
public class MainActivity extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); //获取上下文 Context ctx = MainActivity.this; //获取ContentResolver对象 ContentResolver resolver = ctx.getContentResolver(); //获取Uri对象 Uri uri = Uri.parse("content://com.test.MyProvider"); //获取数据 Cursor c = resolver.query(uri, null, null, null, null); c.moveToFirst(); for(int i=0; i<c.getCount(); i++){ int index = c.getColumnIndexOrThrow("name"); String src = c.getString(index); Log.d("", src); c.moveToNext(); } } }?以上就是ContentProvider的使用方式,这种存储方式相比SQLite和SharedPreferences,其复杂性是显而易见的,但是在处处可见“云”的今天,程序间的数据交互需求令ContentProvider存储机制变成必不可少的一部分。
?
=================================sqllite ↓↓↓==================================
SQLite是一种转为嵌入式设备设计的轻型数据库,其只有五种数据类型,分别是:
NULL: 空值
INTEGER: 整数
REAL: 浮点数
TEXT: 字符串
BLOB: 大数据
在SQLite中,并没有专门设计BOOLEAN和DATE类型,因为BOOLEAN型可以用INTEGER的0和1代替true和false,而DATE类型则可以拥有特定格式的TEXT、REAL和INTEGER的值来代替显示,为了能方便的操作DATE类型,SQLite提供了一组函数,详见:http://www.sqlite.org/lang_datefunc.html。这样简单的数据类型设计更加符合嵌入式设备的要求。关于SQLite的更多资料,请参看:http://www.sqlite.org/
在Android系统中提供了android.database.sqlite包,用于进行SQLite数据库的增、删、改、查工作。其主要方法如下:
beginTransaction(): 开始一个事务。
close(): 关闭连接,释放资源。
delete(String table, String whereClause, String[] whereArgs): 根据给定条件,删除符合条件的记录。
endTransaction(): 结束一个事务。
execSQL(String sql): 执行给定SQL语句。
insert(String table, String nullColumnHack, ContentValues values): 根据给定条件,插入一条记录。
openOrCreateDatabase(String path, SQLiteDatabase.CursorFactory factory): 根据给定条件连接数据库,如果此数据库不存在,则创建。
query(String table, String[] columns, String selection, String[] selectionArgs, String groupBy, String having, String orderBy): 执行查询。
rawQuery(String sql, String[] selectionArgs): 根据给定SQL,执行查询。
update(String table, ContentValues values, String whereClause, String[] whereArgs): 根据给定条件,修改符合条件的记录。
除了上诉主要方法外,Android还提供了诸多实用的方法,总之一句话:其实Android访问数据库是一件很方便的事儿。
一、 创建数据库
通过openOrCreateDatabase(String path, SQLiteDatabase.CursorFactory factory)方法创建数据库。
1 SQLiteDatabase db =this.openOrCreateDatabase("test_db.db", Context.MODE_PRIVATE, null);2 SQLiteDatabase db2 = SQLiteDatabase.openOrCreateDatabase("/data/data/com.test/databases/test_db2.db3", null); 二、创建数据表,插入数据。
Android系统并没有提供特别的创建数据表的方法,数据表通过SQL语句创建,代码如下:
1 db.execSQL("create table tab(_id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT NOT NULL)");数据插入代码如下:
1 ContentValues values =new ContentValues();2 for(int i=0;i<10;i++){3 values.put("name", "test"+ i);4 db.insert("tab", "_id", values);5 }数据修改代码如下:
1 ContentValues values =new ContentValues();2 values.put("name", "name");3 db.update("tab", values, "_id=1", null);4 db.update("tab", values, "_id=?", new String[]{"5"});具体代码如下:
db.delete("tab", "_id=? or name=?", new String[]{"8", "name"});
?
?
File须要大家补充吧!!!!!