Android 在事务中使用多个方法
我正在制作一个Android应用程序,它从XML文件中获取信息。 由于查询的强大功能,为了在程序运行时更方便地访问,我将信息填入数据库中 然而,我注意到,使用事务大大提高了速度,所以我自然希望使用它 我的问题是以下这些; 在抽象的思想中,解析一个主题的所有信息后,信息被发送到正确的实体(类),在该实体内有一个方法将其添加到数据库中。在这之后,它返回到解析器,解析器继续读取下一个主题,然后这个主题将被再次发送到right(可能是另一个)类 这是通过switch语句实现的,每个实例都指向不同的类构造函数 如果我想使用事务的速度,我需要在解析之前启动一个事务,运行解析和查询构建(据我所知,所有在事务中构建的查询都被收集,最后都作为一个束执行),然后在解析完整个文件后结束事务 使这一点更清楚,或更快地阅读;代码思想是Android 在事务中使用多个方法,android,sqlite,transactions,Android,Sqlite,Transactions,我正在制作一个Android应用程序,它从XML文件中获取信息。 由于查询的强大功能,为了在程序运行时更方便地访问,我将信息填入数据库中 然而,我注意到,使用事务大大提高了速度,所以我自然希望使用它 我的问题是以下这些; 在抽象的思想中,解析一个主题的所有信息后,信息被发送到正确的实体(类),在该实体内有一个方法将其添加到数据库中。在这之后,它返回到解析器,解析器继续读取下一个主题,然后这个主题将被再次发送到right(可能是另一个)类 这是通过switch语句实现的,每个实例都指向不同的类构造
Class parser(){
database.beginTransaction();
try{
// start parsing in a whole different class, which also points to SQL queries (in different classes again) in the entitys with a switch
}catch(Exception e){
database.endTransaction();
}
database.endTransaction();
}
我希望我的问题表述得足够清楚
亲切的问候,是的,你已经大致了解了。但是,在完成解析时,您需要小心地将事务标记为成功,并确保即使发生异常,事务也始终关闭 示例来自:
db.beginTransaction();
试一试{
//在这里做所有的分析
...
db.setTransactionSuccessful();
}最后{
db.endTransaction();
}
是的,你已经大致了解了。但是,在完成解析时,您需要小心地将事务标记为成功,并确保即使发生异常,事务也始终关闭
示例来自:
db.beginTransaction();
试一试{
//在这里做所有的分析
...
db.setTransactionSuccessful();
}最后{
db.endTransaction();
}
Graham Borland您好,谢谢您的快速回复。我的问题的核心是,如果在某个地方启动一个,比如说“一般事务”,并且在事务之间有很多代码,这是没有问题的。发现的大多数示例都是简单地启动一个事务,然后立即执行一个查询或通过某个对象执行max循环,然后执行查询。问题是,举例来说,当制作一个只创建和填充数据库的程序时。我可以在main方法上启动一个事务,在该事务保持打开状态时运行整个程序的其余部分,然后在完成所有操作后,成功并结束该事务,最后一次执行程序中生成的所有查询。我知道这当然是夸大了,也不是想要的。在长时间运行的XML解析操作期间打开事务是没有问题的。正如你自己所注意到的,它提供了很多好处,包括速度。OK,这就是我所需要知道的,谢谢:)我不能羞耻地给你的帖子+1,因为我没有足够的声誉。嗨,格雷厄姆·博兰,谢谢你的快速回复。我的问题的核心是,如果在某个地方启动一个,比如说“一般事务”,并且在事务之间有很多代码,这是没有问题的。发现的大多数示例都是简单地启动一个事务,然后立即执行一个查询或通过某个对象执行max循环,然后执行查询。问题是,举例来说,当制作一个只创建和填充数据库的程序时。我可以在main方法上启动一个事务,在该事务保持打开状态时运行整个程序的其余部分,然后在完成所有操作后,成功并结束该事务,最后一次执行程序中生成的所有查询。我知道这当然是夸大了,也不是想要的。在长时间运行的XML解析操作期间打开事务是没有问题的。正如你自己所注意到的,它提供了很多好处,包括速度。OK,这就是我所需要知道的,谢谢:)我不能羞耻地给你的post+1,因为我没有足够的声誉。