Andriod数据存储

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();
    }
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容