SQLite数据库存储

1.获取SharedPreferences对象中的数据

SharedPreferences对象中提供了一些列的get方法。这些get方法接收两个参数,第一个参数是键,第二个参数是默认值


2.SQLite数据库存储

 1. 首先借助SQLiteOpenHelper类对数据库进行创建和升级:

SQLiteOpenHelper是抽象类需要自己创建一个类去继承它。同时需要重写两个抽象方法onCreate()和onUpgrade(),分别在这两个方法中实现创建、升级数据库。

 SQLiteOpenHelper中还有两个非常重要的实例方法:getReadableDatabase()和getWritableDatabase()。这两个方法都可以创建或打开一个现有的数据库,并返回一个可对数据库进行读写操作的对象。当数据库不可写入的时候,read方法将返回一个只读对象,writ方法则抛出异常。

 SQLiteOpenHelper中的构造函数接收4个参数,第一个参数是Context,第二个是数据库名称,第三个是Cursor对象(传入null以使用默认的),第四个是当前数据库的版本号,可用于对数据库进行升级。

 构建出SQLiteOpenHelper的实例之后,再调用它的getReadableDatabase()或getWritableDatabase()方法就能够创建数据库了。

数据库文件会存放在/data/data//databases/目录下。

 例子:创建一个名为BookStore.db的数据库,然后在这个数据库中新建一张Book表。代码如下:

public class MyDatabaseHelper extends SQLiteOpenHelper {

    public static final String CREATE_BOOK = "create table Book ("
            + "id integer primary key autoincrement, "
            + "author text, "
            + "price real, "
            + "pages integer, "
            + "name text)";

    public MyDatabaseHelper(Context context, String name,
                            SQLiteDatabase.CursorFactory factory, int version) {
        super(context, name, factory, version);
    }

    @Override
    public void onCreate(SQLiteDatabase db) {
        db.execSQL(CREATE_BOOK);
        Log.d("TAG", "Create succeed !");
    }

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

    }
}
public class DatabaseActivity extends AppCompatActivity {
    private MyDatabaseHelper dbHelper;
    private SQLiteDatabase db;

    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.item_layout);
        //已经存在的数据库,不会重新建立
        dbHelper = new MyDatabaseHelper(this, "BookStore.db"
        , null, 1);
        db = dbHelper.getWritableDatabase();
    }
}

你可能感兴趣的:(SQLite数据库存储)