您的位置:首页 > 移动开发 > Android开发

android数据存取的四种方式

2014-08-14 10:02 363 查看
Android系统下有四种数据的存在形式,分别是SQLite,SharePreference,File,ContentProvider。

一:特性介绍:

SQLite:对于大多数开发者而言,这应该是大家非常熟悉的数据存储方式了吧。我就不多做介绍了。

在Android中使用SQLite进行数据存取也不复杂:与以前我们做的java不同的是,Android中需要一个处理类SQLiteOpenHelper。

下面我们通过一个简单的事例代码来说明。

1-------------SQLite

新建一个类MySqlHanlder.java继承至SQLiteOpenHelper,实现所有的方法并生成构造函数。



public class MyDataHelper extends SQLiteOpenHelper {

public MyDataHelper(Context context, String name, CursorFactory factory,

int version) {

super(context, name, factory, version);

// TODO Auto-generated constructor stub

}



@Override

public void onCreate(SQLiteDatabase db) {

// TODO Auto-generated method stub

}



@Override

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

// TODO Auto-generated method stub

}

}

这里是一个程序入口测试类:MainActitvity.java



public class MainActitvity extends Activity {

/** Called when the activity is first created. */

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.main);



MyDataHelper data = new MyDataHelper(MainActitvity.this,"zhao",null, 1);//创建一个名叫zhao的数据库

final SQLiteDatabase db = data.getWritableDatabase();

String createtable = "create table if not exists student(mane varchar(30),age integer)";

db.execSQL(createtable);//在zhao中创建一个叫做student的表

final String insert = "insert into student values(?,?)";

final String query = "select mane from student";

//写入数据

Button writebtn = (Button)findViewById(R.id.writedata);

writebtn.setOnClickListener(new OnClickListener() {

@Override

public void onClick(View v) {

// 在zhao中插入三条数据

db.execSQL(insert, new Object[]{"xiaoming",10});

db.execSQL(insert, new Object[]{"xiaozhang",10});

db.execSQL(insert, new Object[]{"kankan",10});

}

});

//读取数据

Button readbtn = (Button)findViewById(R.id.readdata);

readbtn.setOnClickListener(new OnClickListener() {

@Override

public void onClick(View v) {

// TODO Auto-generated method stub

Cursor cursor = db.rawQuery(query, null);

while (cursor.moveToNext()) {

Toast.makeText(MainActitvity.this,cursor.getString(0),3000).show();//得到第一条数据

}

}

});

}

}

main.xml



<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

android:orientation="vertical"

android:layout_width="fill_parent"

android:layout_height="fill_parent"

>

<Button

android:id="@+id/writedata"

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:text="Write"

></Button>

<Button

android:id="@+id/readdata"

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:text="Read"

></Button>

</LinearLayout>

2-------------SharePreference

(我们也通常称之为小文件,它的本质是一个xml文件,常用来存一些简单的参数)用法非常简单:



public class MainActitvity extends Activity {

/** Called when the activity is first created. */

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.main);



//创建zhao.xml文件

SharedPreference sp = this.getSharedPreferences("zhao",MODE_APPEND);

//获取编辑对象

SharedPreferences.Editor edit = sp.edit();

//添加值

edit.putString("user1","xiaoli");

edit.putInt("age",20);

//提交

edit.commit();

}

}

3-------------File(I/O)这应该是每一个Java程序员非常熟悉的数据存取方式了吧,用IO方式存取数据就不仅仅局限与

一些字符串了,图片,音乐,文档等等文件都可以通过IO方式来。这里我就举一个在Android开发中常用的IO操作:

呵呵,请各位参考我的另一篇博客:---------Android从网络加载图片

4.------------ContentProvider

大家都知道:上面三种数据都是一个程序私有的,它们存在于程序的安装文件中,因此它们不能够被其他的应用程序共享。

所以这时就有ContentProvider来实现共享数据的功能了,ContentProvider的标准解释是:“不同程序间进行数据交换的标准API”,

比如:我们新建一个工程去获取系统联系人列表,或者去获取Camera下的照片,录像等,就需要使用这些程序提供的ContentProvider接口来实现“桥梁”的功能。参考博客--------ContentProvider应用实例
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: