对于Sqlite,删除Sqlite数据库中的所有表
SQLite数据库中一个特殊的名叫SQLITE_MASTER上执行一个SELECT查询以获得所有表的索引。每一个SQLite数据库都有一个叫SQLITE_MASTER的表,它定义数据库的模式。SQLITE_MASTER表看起来如下:
1、当需要清空数据库中的数据时而需要删除所有表然后再重新创建 static class SqliteDbHelper extends SQLiteOpenHelper { public static final int DATABASE_VERSION = 1; SqliteDbHelper(Context context,String dbName,int dbVersion) { super(context,dbName,null,dbVersion); } @Override public void onCreate(SQLiteDatabase db) { } @Override public void onUpgrade(SQLiteDatabase db,int oldVersion,int newVersion) { dropDb(db); onCreate(db); } } 删除所有表 static void dropDb(SQLiteDatabase db) { Cursor cursor = db.rawQuery("SELECT name FROM sqlite_master WHERE type ='table' AND name != 'sqlite_sequence'",null); if (cursor != null) { while (cursor.moveToNext()) { db.execSQL("DROP TABLE " + cursor.getString(0)); DBLogger.d(TAG,"删除表 = " + cursor.getString(0)); } } if (cursor != null) { cursor.close(); cursor = null; } }
打开SD卡目录里的db数据库 public SqliteUtilityBuilder configSdcardPath(String path) { this.path = path; sdcardDb = true; return this; } static SQLiteDatabase openSdcardDb(String path,int version) { SQLiteDatabase db = null; File dbf = new File(path + File.separator + dbName + ".db"); if (dbf.exists()) { DBLogger.d(TAG,"打开库 %s",dbName); db = SQLiteDatabase.openOrCreateDatabase(dbf,null); } else { dbf.getParentFile().mkdirs(); try { if (dbf.createNewFile()) { DBLogger.d(TAG,"新建一个库在sd卡,库名 = %s,路径 = %s",dbf.getAbsolutePath()); db = SQLiteDatabase.openOrCreateDatabase(dbf,null); } } catch (IOException ioex) { ioex.printStackTrace(); throw new RuntimeException("新建库失败,库名 = " + dbName + ",路径 = " + path,ioex); } } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |