2010-06-23 147 views
2

在我的应用程序中,我支持Sqlite数据库文件的备份和恢复。如何关闭并重新打开Sqlite数据库?

我需要在恢复后关闭并重新打开数据库连接。我怎样才能做到这一点?

+0

你可以发布一些代码,如何访问数据库?另外,你如何备份和恢复数据库?请更新你的文章,以便每个人都可以看到它。 – 2010-06-23 02:26:32

回答

1

此代码可能会对您有所帮助。

public class DbHelper { 
    private static final String DATABASE_NAME = "rayyildiz_sample.db"; 
    private static final int DATABASE_VERSION = 1; 
    private static final String TABLE_NAME = "Test"; 
    private static final String TABLE_CREATE = "CREATE TABLE " + TABLE_NAME + " (" 
     + " \"Id\" INTEGER PRIMARY KEY," 
     + " \"Firstname\" TEXT," 
     + " \"Lastname\" TEXT," 
     + " \"PhoneNumber\" TEXT" + ")"; 
    private static final String TABLE_INSERT = "INSERT INTO " + TABLE_NAME + "(Firstname,Lastname,PhoneNumber) VALUES (?,?,?)"; 

    private Context context; 
    private SQLiteDatabase database; 
    private SQLiteStatement insertSQLiteStatement; 

    public DbHelper(Context context) { 
    this.context = context; 
    DbOpenHelper dbOpenHelper = new DbOpenHelper(context); 
    database = dbOpenHelper.getWritableDatabase(); 
    insertSQLiteStatement = database.compileStatement(TABLE_INSERT); 
    } 

    public void close(){ 
    database.close(); 
    } 

    public void reopen(){ 
    close(); 
    DbOpenHelper dbOpenHelper = new DbOpenHelper(context); 
    database = dbOpenHelper.getWritableDatabase();  
    } 

    private static class DbOpenHelper extends SQLiteOpenHelper { 
    public DbOpenHelper(Context context) { 
     super(context, DATABASE_NAME, null, DATABASE_VERSION); 
    } 

    @Override 
    public void onCreate(SQLiteDatabase db) { 
     db.execSQL(TABLE_CREATE); 
    } 

    @Override 
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { 
     db.execSQL("DROP TABLE IF EXISTS " + TABLE_NAME); 
     onCreate(db); 
    } 
    } 
}