Andriod数据存储
1.数据存储之SharedPreferences
2.本地数据库SQLlite
一.SharedPreferences
SharedPreferences采用键值对的方式存储少量数据,SharedPreferences作为一个接口,无法被实例化,所以用getSharedPreferences(String name,int mode)来获取SharedPreferences对象,而数据的操作由SharedPreferences的Editor完成。
public class UserSharedPreferences{
public static SharedPreferences sharedPreferences(Context context){
SharedPreferences sp=context.getSharedPreferences("userData",Context.MODE_PRIVATE);
return sp;
}
public static Object getName(Context context){
return sharedPreferences(context).getString("name",null);
}
public static boolean setName(String name,Context context){
SharedPreferences.Editor e= sharedPreferences(context).edit();
e.putString("name",name);
Boolean b=e.commit();
return b;
}
public static Object getId(Context context){
return (int) sharedPreferences(context).getInt("id",0);
}
public static boolean setId(int id,Context context){
SharedPreferences.Editor e= sharedPreferences(context).edit();
e.putInt("id",id);
Boolean b=e.commit();
return b;
}
}
二.SQLlite
SQLlite是一个后缀为.db的数据库文件。
public class SqliteHelper extends SQLiteOpenHelper {
public SqliteHelper(Context context,String name,SQLiteDatabase.CursorFactory factory, int version) {
super(context, name, factory, version);
}
//创建数据库时调用
@Override
public void onCreate(SQLiteDatabase db) {
String sql="create table t_book (id text,name text,author text,img int)";
db.execSQL(sql);
}
//版本更新时调用
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
}
}
SQLlite.png
public class App extends android.app.Application {
public SqliteHelper sqliteHelper;
public static App app;
@Override
public void onCreate(){
super.onCreate();
sqliteHelper=new SqliteHelper(this,"book.db",null,1);
app=this;
}
}
dao
public class BookDao {
private SQLiteDatabase db;
public BookDao(){
this.db=App.app.sqliteHelper.getReadableDatabase();
}
public List<Book> findAll(){
List<Book> books=new ArrayList<Book>();
String sql="select * from t_book";
//游标
Cursor c=db.rawQuery(sql,null);
while(c.moveToNext()){
books.add(new Book(c.getString(1),c.getString(2),c.getInt(3)));
}
c.close();
return books;
}
public void addBook(){
String sql="insert into t_book (id,name,author,img) values (?,?,?,?)";
db.execSQL(sql,new Object[]{uuid(),"水浒传","施耐庵",R.drawable.ic_logo});
//增删改查都以这种方式
}
public String uuid(){
return UUID.randomUUID().toString();
}
}