Android几种打开SQLite的方法

来源:互联网 发布:淘宝网恒源祥毛衣 编辑:程序博客网 时间:2024/05/16 02:52

Android几种打开SQLite的方法

第一种:用SQLiteOpenHelper辅助类

  SQLiteOpenHelper类可以用来创建或打开数据库,两个关键的方法:onCreate(SQLiteDatabase db)和onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion)。当新建一个数据库时会调用前者,一般在里面做一些创建表或视图的操作。数据库版本升级时则会调用后者。

  当第一次调用getReadableDatabase()方法或getWritableDatabase()方法即可返回一个SQLiteDatabase对象。如果是第一次调用,则会创建数据库。随后可使用SQLiteDatabase对象的方法进行数据操作,如:execSQL(), insert(), update(), query(), rawQuery(), delete()等。

  PS:通过该方法创建的数据库存放的目录是固定的,其路径为/data/data/packageName/databases/

 

第二种:用Context类的openOrCreateDatabase()方法

  openOrCreateDatabase(String dbName, int mode, CursorFactory factory);

  dbName:数据库操作模式:默认值为MODE_PRIVATE(0),可选值:MODE_WORLD_READABLE, MODE_WORLD_WRITABLE, MODE_ENABLE_WRITE_AHEAD_LOGGING

  factory:附加的一个工厂类,当SQLiteDatabase实例的query函数被调用时,会使用该工厂类返回一个Cursor。可为null。

PS:该方法得到的数据库文件,其存储路径与上一方法相同。

 

第三种:直接调用SQLiteDatabase类的静态方法openOrCreateDatabases()

SQLiteDatabase类有几个静态方法可直接打开或创建数据库。

//等同于openDatabase(path, factory, SQLiteDatabase.CREATE_IF_NECESSARY)

openOrCreateDatabase(String path, CursorFactory factory)

//等同于openDatabase(file.getPath(), factory, SQLiteDatabase.CREATE_IF_NECESSARY)

openOrCreateDatabase(File file, CursorFactory factory)

//等同于openDatabase(file.getPath(), factory, SQLiteDatabase.CREATE_IF_NECESSARY, errorHandler)

openOrCreateDatabase(String path, CursorFactory factory, DatabaseErrorHandler errorHandler)

PS:该方法打开或创建的数据库文件可与上述两个方法的路径不同。

 

还是上个代码看着更爽

复制代码
 1 //第一种 2         SQLiteDatabase db = mySqliteOpenHelper.getReadableDatabase(); 3         db.execSQL("alter table info add number1 vchar(20)"); 4  5         //第二种 6         //获取info.db的路径 7         File file = new File(getApplication().getDatabasePath("info.db").getPath()); 8         SQLiteDatabase db1 = SQLiteDatabase.openOrCreateDatabase(file,null); 9         db1.execSQL("alter table info add number2 vchar(20)");10 11         //第三种,12         SQLiteDatabase db2 = this.openOrCreateDatabase("info.db",0,null);13         db.execSQL("alter table info add number3 vchar(20)");
原创粉丝点击