androidsqlite和SaxParser
现在我有点困惑。我收到一个XML文件,并希望将该内容存储在sqlite数据库中。我想这听起来很普遍。我有一个DBAdapter,它基本上执行以下操作androidsqlite和SaxParser,android,sqlite,saxparser,Android,Sqlite,Saxparser,现在我有点困惑。我收到一个XML文件,并希望将该内容存储在sqlite数据库中。我想这听起来很普遍。我有一个DBAdapter,它基本上执行以下操作 private static class DatabaseHelper extends SQLiteOpenHelper { private final Context ctx; DatabaseHelper(Context context) { super(context, Constants.DB
private static class DatabaseHelper extends SQLiteOpenHelper
{
private final Context ctx;
DatabaseHelper(Context context)
{
super(context, Constants.DB_NAME, null, Constants.DB_VERSION);
this.ctx = context;
}
@Override
public void onCreate(SQLiteDatabase db)
{
db.execSQL("create table mytable (_id integer primary key autoincrement, field text not null, field2 text not null );");
fillDb(db);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion)
{
//not relevant here so skip it
}
private void fillDb(SQLiteDatabase db)
{
InputStream rawInput = this.ctx.getResources().openRawResource(R.raw.data);
SAXParserFactory factory = SAXParserFactory.newInstance();
try
{
SAXParser saxParser = factory.newSAXParser();
saxParser.parse(rawInput, new HandlerXmlData());
}
catch(Exception e)
{
//not relevant here so skip it
}
//this manual entries would work here
//ContentValues values = new ContentValues();
//values.put("field", "aaa");
//values.put("field2", "bbb");
//db.insert("mytable", null, values);
}
现在的问题是,在我的SAXParser中
公共类HandlerXmlData扩展了DefaultHandler
{
因此,在我的SAXParser中,我无法访问DatabaseHelper类中的db对象。如何将这些对象组合在一起
谢谢,A.你有两个选择来实现你想要做的事情
可以通过构造函数将db对象传递给解析器吗
public HandlerXmlData(SQLiteDatabase db){
this.db = db;
}
public HandlerXmlData(SQLiteDatabase db){
this.db = db;
}