Android数据存储模式 File、Network、SharedPreferences、SQLite
SharedPreferences:会以xml文件形式存储数据
// interface SharedPreferences
this.getSharedPreferences(Sring fileName,int mode);//创建或获得以fileName命名的SharedPreferences
editor();//获得SharedPerference的编辑器
Type getType();//读取数据
//interface SharedPreferences.Editor
putType(String key;Type value);//压入数据
remove(String key);//移除数据
clear();//清空数据
commit();//提交操作结果
apply();//提交操作结果
SharedPreferences操作示例
public class MyActivity extends Activity
{
public void onCreate(Bundle saveInstanceState)
{
super.onCfeate(saveInstanceState);
setContentView(R.layout.myLayout);
Button button=(Button)findViewById(R.id.button);
button.setOnClickListener(new OnClickListener(){
public void click()
{
SharedPreferences sp=this.getSharedPreferences("setting",Activity.MODE_PRIVATE);
SharedPreference.Editor editor=sp.editor();
editor.putString("userName","Jay");//压入数据
editor.remove("userName");//移除数据
editor.commit();//提交操作
/*
sp.getString();//获取数据
*/
}
});
}
}
SQLite:
SQLiteOpenHelper:抽象类,具有数据库的创建、开启和数据库版本管理的功能。继承该类的subClass需要继承父类的构造方法,
并implement abstract onCreate(SQLiteDatabase db) 和 abstract onUpgrade() method.
//abstract SQLiteOpenHelper
SQLiteOpenHelper( Contextcontext,Stringname,
SQLiteDatabase.CursorFactory factory,
int version);
abstract onCreate(SQLiteDatabase db);//当数据库第一次加载时执行此方法
abstract onUpgrade( SQLiteDatabase db,int oldVersion,int
newVersion);//数据库版本管理
void Open(SQLiteDatabase db);//当数据库被打开后调用此方法
SQLiteDatabase getReadableDatabase();//获取只读数据库
SQLiteDatabase getWritableDatabase();//获取可写数据库
String getDatabaseName();//获取数据库名称
//SQLiteDatabase
void execSql(String statement);
long insert( String tableName,String nullColumn ,
ContentValues values);//Hash结构//ContentValues
int delete( String tableName,String whereClause,
String [] whereArgs);
int update( String tableName,ContentValues values,
String whereClause,String[] whereArgs);
Cursor query( String tableName,String columns,
String whereClause,String[] whereArgs,
String groupBy,String having,
String orderBy,String limit());
//ContentValues
new ContentValues();
void put(String key,Type value);//压入数据
//interface Cursor、SQLiteCursor游标
//关于位置的method
boolean isFirst(); boolean isLast();
boolean moveToNext(); boolean moveToPrevious();
boolean moveToPosition();
//获取数据
int getCount();
Bundle getExtras();
int getColumnIndex(String columnName);
Type getType(String columnIndex);
//SQLiteQuery
//SQLiteQueryBuilder
//SQLiteStatement
SQLite示例:
//创建SQLiteOpenHelper子类SubSQLiteOpenHelper
SubSQLiteOpenHelper extends SQLiteOpenHelper
{
private final int VERSION=1;
//构造函数1
public SubSQLiteOpenHelper(Content content,String dbName,SQLiteDatabase.CursorFactory factory,
int version)
{super( content, dbName, factory,version);}
//构造函数2,调用构造函数1
public SubSQLiteOpenHelper(Content content,String dbName,int version)
{SubSQLiteOpenHelper(content, dbName,null, version);}
//构造函数3,调用构造函数2
public SubSQLiteOpenHelper(Content content,String dbName)
{SubSQLiteOpenHelper(content, dbName,null, VERSION);}
//实现OnCteate函数
public void OnCreate(SQLiteDatabase db)
{
//your code here;
db.execSql("
create table tbUser(
userId int not null primary key auto_increment,
userName varchar(20) default null,
userPhone varchar(11) not null
)default charset=utf8;
");
}
public void OnUpgrade(SQLiteDatabase db,String oldVersion,String newVersion)
{
//your code here;
}
}
//创建activity,DatabaseActivity
public class DatabaseActivity extends Activity
{
SubSQLiteOpenHelper dbHelper=new SubSQLiteDatabaseHelper(DatabaseActivity.this,"appDB");
SQLiteDatabase db=null;
Button buttInsert=(Button)findViewById(R.id.buttInsert);
Button buttDelete=(Button)findViewById(R.id.buttDelete);
Button buttUpdate=(Button)findViewById(R.id.buttUpdate);
Button buttQuery=(Button)findViewById(R.id.buttQuery);
public void OnCreate(Bundle saveInstanceState)
{
super.Oncreate(saveInstanceState);
//Insert
buttInsert.setOnClickListener(new OnClickListener(){
public void click()
{
ContentValues values=new ContentValues();
db=dbHelper.getWritableDatabase();
//db.execSql("sqlStatement");
values.put("userName","Jay");
values.put("userPhone","00000000001");
db.Insert("tbUser",null,values);
values.put("userName","Jasion");
values.put("userPhone","00000000002");
db.Insert("tbUser",null,values);
}
});
//delete
buttDelete.setOnClickListener(new OnClickListener(){
public void click()
{
db=dbHelper.getWritableDatabase();
//db.execSql("sqlStatement");
db.delete("tbUser","id=?",new String[]{"2"});
}
});
//update
buttUpdate.setOnClickListener(new OnClickListener(){
public void click()
{
ContentValues values=new ContentValues();
values.put("userName","Jay2");
db=dbHelper.getWritableDatabase();
//db.execSql("sqlStatement");
db.update("tbUser",values,"userName=?",new String[]{"Jay"});
}
});
//query
buttQuery.setOnClickListener(new OnClickListener(){
public void click()
{
SQLiteCursor cursor=null;
db=dbHelper.getReadableDatabase();
cursor=db.query();
}
});
}
}