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"/>