OpenOrCreateDatabase与SQLiteOpenHelper区别

来源:互联网 发布:阿里云怎么赚钱 编辑:程序博客网 时间:2024/06/08 06:05
今天看Android视频,看到讲SQLite数据库里建库的方法,看到播主用的是OpenOrCreateDatabase方法,格式为
protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        SQLiteDatabase sql=OpenOrCreateDatabase(DATABASE_NAME, Context.MODE_PRIVATE, null);//第一个参数是数据库名,第二个是MODE模式,有私有,可读,可写,第三个是查询时游标实例化的一个工程类Cursor。

树上郭神的方法是创建一个MyDatabaseHelper类去继承自带的SQLiteOpenHelper类,然后在Activity里private一个自定义类dbHelper,具体代码如下

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)";    @Override    public void onCreate(SQLiteDatabase db){        db.execSQL(CREATE_BOOK);        db.execSQL(CREATE_CATEGORY);        Toast.makeText(mContext, "创建完成", Toast.LENGTH_SHORT).show();    }    @Override    public void onUpgrade(SQLiteDatabase db,int oldVersion,int newVersion){        db.execSQL("drop table if exists Book");        db.execSQL("drop table if exists Category");        onCreate(db);    }}
Activity里的代码如下

public class MainActivity extends AppCompatActivity {    private MyDatabaseHelper dbHelper;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        dbHelper=new MyDatabaseHelper(this,"BookStore.db",null,3);}}
在SQLiteOpenHelper里有两个构造方法可以重写,参数为四个,第一个参数是Context,第二个是数据库名,第三个参数允许我们在查询数据时返回一个自定义的Cursor,一般都是null,第四个参数就是当前数据库的版本号,用于对数据库的升级,构建实例后再调用getReadableDatabase()或者getWriteableDatabase()就可以创建数据库了
Button button=(Button)findViewById(R.id.button1);        button.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View view) {                dbHelper.getWritableDatabase();            }        });
其实看源码也可以搞清楚两种方法区别,具体的看这位大神的解释http://blog.csdn.net/wangqilin8888/article/details/7903048

1 0
原创粉丝点击