`
ivoter
  • 浏览: 91407 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

sqlite数据库备份与恢复

阅读更多

 

public class BackupTask extends AsyncTask<String, Void, Integer> {
    private static final String COMMAND_BACKUP = "backupDatabase";
    public static final String COMMAND_RESTORE = "restroeDatabase";
    private Context mContext;

    public BackupTask(Context context) {
        this.mContext = context;
    }

    @Override
    protected Integer doInBackground(String... params) {
        // TODO Auto-generated method stub
// 获得正在使用的数据库路径,我的是 sdcard 目录下的 /dlion/db_dlion.db
     // 默认路径是 /data/data/(包名)/databases/*.db
File dbFile = mContext.getDatabasePath(Environment .getExternalStorageDirectory().getAbsolutePath() + "/dlion/db_dlion.db"); File exportDir = new File(Environment.getExternalStorageDirectory(), "dlionBackup"); if (!exportDir.exists()) { exportDir.mkdirs(); } File backup = new File(exportDir, dbFile.getName()); String command = params[0]; if (command.equals(COMMAND_BACKUP)) { try { backup.createNewFile(); fileCopy(dbFile, backup); return Log.d("backup", "ok"); } catch (Exception e) { // TODO: handle exception e.printStackTrace(); return Log.d("backup", "fail"); } } else if (command.equals(COMMAND_RESTORE)) { try { fileCopy(backup, dbFile); return Log.d("restore", "success"); } catch (Exception e) { // TODO: handle exception e.printStackTrace(); return Log.d("restore", "fail"); } } else { return null; } } private void fileCopy(File dbFile, File backup) throws IOException { // TODO Auto-generated method stub FileChannel inChannel = new FileInputStream(dbFile).getChannel(); FileChannel outChannel = new FileOutputStream(backup).getChannel(); try { inChannel.transferTo(0, inChannel.size(), outChannel); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } finally { if (inChannel != null) { inChannel.close(); } if (outChannel != null) { outChannel.close(); } } } }
复制代码

 

在 mainActivity 里异步加载备份、还原:

复制代码
  // 数据恢复
    private void dataRecover() {
        // TODO Auto-generated method stub
        new BackupTask(this).execute("restroeDatabase");
    }

    // 数据备份
    private void dataBackup() {
        // TODO Auto-generated method stub
        new BackupTask(this).execute("backupDatabase");
    }
原址:http://www.oschina.net/question/157182_51370
分享到:
评论

相关推荐

    SQLite:SQLite数据库备份与恢复.docx

    SQLite:SQLite数据库备份与恢复

    sqlite3 命令行下备份与恢复

    SQLite3提供了多种方法来实现数据库的备份与恢复,无论是通过SQL脚本文件还是直接在数据库文件间进行操作。了解并熟练掌握这些命令对于有效管理和维护SQLite3数据库至关重要。希望本文能帮助您更好地理解SQLite3...

    Sqlite 数据库删除恢复

    在这种情况下,"SQLite数据库删除恢复"工具显得尤为重要。 SQLite数据库本身并不提供内置的删除恢复功能。一旦数据被删除,它会被标记为可重用空间,但实际数据可能仍存在于磁盘上,直到被新的数据覆盖。这款工具...

    C# WinForm 数据库备份与恢复 Demo 两种方式

    在提供的压缩包文件"**C# WinForm 数据库备份与恢复 VS2008实现**"中,应该包含了使用C# WinForm界面和上述两种方法实现数据库备份恢复的示例代码。通过分析和学习这个示例,开发者可以更好地理解和掌握如何在实际...

    数据库的备份与还原

    #### 一、数据库备份的重要性 数据库备份是数据库管理中的一个重要环节,旨在保护数据安全,防止数据丢失。通过定期备份,可以在遇到意外情况(如硬件故障、软件错误或人为误操作等)时,快速恢复数据至备份时的状态...

    SQLite数据库打开工具

    7. 数据备份与恢复:提供数据库的备份和恢复功能,确保数据安全。 8. 数据同步:支持数据库之间的同步,用于多设备或多环境的数据一致性。 9. 图形化界面:提供直观的图形用户界面(GUI),使得非专业程序员也能轻松...

    SQLite数据库查看工具(SQLiteBrowser)

    9. 数据备份与恢复:支持数据库的备份和恢复操作,确保数据安全。 压缩包中包含的文件是SQLiteBrowser运行所必需的动态链接库(DLL)文件和主执行文件。这些文件主要包括Qt库的组件,如QtGui4.dll、QtCore4.dll、Qt...

    sqlite 数据库管理工具

    1. **数据库创建与管理**:SQLite Studio允许用户创建新的SQLite数据库,打开已有的数据库进行编辑,以及对数据库进行备份和恢复操作。它支持创建、修改和删除数据库表,以及管理索引、触发器和视图。 2. **SQL查询...

    实验十 使用SQLite数据库存储数据

    9. **数据备份与恢复**: Android提供了`SQLiteBackupHelper`类,可以帮助开发者实现数据库的备份和恢复功能。 10. **性能优化**: 为提升数据库性能,可以考虑使用索引、适当的数据类型、避免在SQL语句中使用硬编码...

    Sqlite数据库编辑工具

    1. **数据库管理**: 创建、打开、备份、恢复和删除SQLite数据库文件。 2. **表操作**: 创建、修改、删除表,以及查看表结构和数据。 3. **索引和视图**: 创建、删除索引,以及创建和修改视图。 4. **查询构建器**: ...

    android sqlite数据的备份与还原

    总之,Android应用中的SQLite数据库备份与还原是一项重要的功能,需要开发者自定义实现。正确地设计和实现这个过程不仅可以确保数据安全,还可以提升用户的满意度。同时,关注用户体验,如提供清晰的界面和反馈,是...

    SQLite 数据库教程集合

    例如,创建一个数据库,然后创建表,插入数据,进行复杂的查询,更新和删除数据,最后备份和恢复数据库。这些步骤将帮助你熟悉数据库生命周期的各个环节。 六、性能优化与管理 SQLite提供了很多工具和策略来优化...

    sqlite数据库管理工具

    8. **备份与恢复**:可以对数据库进行备份,并在需要时恢复。 9. **导入与导出数据**:可以从多种格式(如CSV、JSON)导入数据,也可以将数据导出为各种格式。 10. **权限管理**:尽管SQLite本身的权限系统相对简单...

    SqLite数据库操作工具

    - **数据库管理**: 创建、打开、备份和恢复SQLite数据库。 - **表管理**: 创建、修改和删除表,定义字段类型和约束。 - **索引管理**: 创建和删除索引以优化查询性能。 - **视图管理**: 创建和操作视图,提供更...

    sqlite数据库工具

    5. 数据库备份与恢复:许多SQLite数据库工具还支持数据库的导出和导入,这在备份和迁移数据库时非常实用。 6. 开源与跨平台:SQLite是开源的,这意味着任何人都可以查看其源代码并根据需要进行定制。同时,SQLite...

    android 的sqlite数据库加密实现

    3. 兼容性问题:不是所有的SQLite工具都支持加密数据库,备份和恢复时需使用支持加密的工具。 六、NativeDemo示例 "NativeDemo"可能是一个示例项目,展示了如何在Android原生环境中实现SQLCipher加密。这个项目可能...

    Sqlite数据库加密小工具

    这个"Sqlite数据库加密小工具"很可能就是基于这样的扩展,用于帮助用户对SQLite数据库进行加密和解密操作。 加密过程通常包括以下步骤: 1. **安装加密库**:首先,你需要在你的开发环境中集成像SQLCipher这样的...

    SQLite数据库管理工具(SQLiteStudio) v3.1.1 windows,mac,linux版集合

    5. **备份与恢复**:用户可以轻松地备份和恢复SQLite数据库,确保数据安全。这对于防止意外数据丢失或在不同设备间迁移数据非常有用。 6. **跨平台**:SQLiteStudio v3.1.1支持Windows、macOS和Linux操作系统,这...

    sqlite数据库编辑器.rar

    1. **数据库管理**:创建、打开、备份和恢复SQLite数据库,管理表、索引和触发器。 2. **数据浏览**:以表格形式显示数据,支持排序、过滤和搜索,还可以导出数据到CSV或其他格式。 3. **SQL编辑**:提供集成的SQL...

Global site tag (gtag.js) - Google Analytics