Java 在Android中将SQLite数据库导出为XML文件

Java 在Android中将SQLite数据库导出为XML文件,java,xml,android,sqlite,Java,Xml,Android,Sqlite,我知道这是可能的,但我不确定从哪里开始。有人能做到这一点吗 谢谢。本文中描述的DataXmlExporter类将SQL lite DB导出到XML文件 本SVN回购协议中提供了完整示例。该类调用导出 您需要创建一个应用程序类,该类公开数据库并在AndroidManifest.xml文件中作为应用程序名称引用。然后将该DB用作DataXmlExporter构造函数的参数 这是我使用的应用程序类。您应该已经有一个扩展了SQLiteOpenHelper package com.billybobba

我知道这是可能的,但我不确定从哪里开始。有人能做到这一点吗


谢谢。

本文中描述的
DataXmlExporter
类将SQL lite DB导出到XML文件

本SVN回购协议中提供了完整示例。该类调用导出

您需要创建一个应用程序类,该类公开数据库并在AndroidManifest.xml文件中作为应用程序名称引用。然后将该DB用作
DataXmlExporter
构造函数的参数

这是我使用的应用程序类。您应该已经有一个扩展了
SQLiteOpenHelper

package com.billybobbain.android.someapp;
import android.app.Application;
import android.util.Log;

public class MyApplication extends Application {

   public static final String APP_NAME = "SomeApp";  

   private DatabaseHelper dataHelper;   

   @Override
   public void onCreate() {
      super.onCreate();
      Log.d(APP_NAME, "APPLICATION onCreate");
      this.dataHelper = new DatabaseHelper(this);      
   }

   @Override
   public void onTerminate() {
      Log.d(APP_NAME, "APPLICATION onTerminate");      
      super.onTerminate();      
   }

   public DatabaseHelper getDataHelper() {
      return this.dataHelper;
   }

   public void setDataHelper(DatabaseHelper dataHelper) {
      this.dataHelper = dataHelper;
   }
}

看看这里的源代码

我必须做的唯一更改(停止一些Eclipse警告)是关闭exportData()方法中的一个游标。为了使代码更具可移植性,我还将XML文件和位置作为参数传递,而不是作为声明的final字段传递

代码将XML文件写入SD卡。现在,@mmaitlen在他的博客上列出了源代码,他没有添加任何功能来测试外部存储单元的存在。那就留给你去做了

但是,您可以嵌入一些简单的代码,用以下代码片段(未测试)测试是否存在可写存储卡:


如果要创建的大型文件可能超过内部容量,则测试外部存储非常有用。

我发现这非常有用:

使用以下方法将其导出到sd卡:

File sd = Environment.getExternalStorageDirectory();
String path = sd + "/" + DB_NAME + ".xml";

DatabaseDump databaseDump = new DatabaseDump(mySQLiteOpenHelperObject.getReadableDatabase(), path);
databaseDump.exportData();
当然别忘了:

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>


我们该如何称呼这门课?谢谢你提供的更多细节。我还有另一个问题,如果我想在用户按下按钮时导出数据库,例如“发送数据库”,我会将该按钮映射为开始MyApplication类或XMLExport类的意图吗?上面链接的android示例正是您想要的。您应该能够将该代码添加到您的应用程序中,稍微更改文件名,将意图添加到清单中&很好。活动上有一个备份数据库按钮和一个导出到XML按钮。感谢您的回复。我想我的问题是,如果我只想包含导出XML部分,我需要在现有代码中添加多少上述示例。据我所知,我需要上面的“MyApplication”类,但由于它不扩展活动,我如何启动它呢?。我有点困惑,我需要哪些部分。谢谢。@Billybabain你能检查一下上面的链接吗?他们现在不能开门。非常感谢你。
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>