1
我正在製作一個Android應用程序,它從XML文件獲取其信息。 由於查詢的強大功能,我正在填充數據庫中的信息,以便在程序運行時更輕鬆地訪問。在交易中使用多種方法
然而,它引起了我的注意,使用事務大大提高了速度,所以很自然地,我想要使用它。
我的問題是以下tho; 在抽象思想中,在解析主體一個的所有信息之後,信息被髮送到正確的實體(類),並且在該實體內部有一種將其添加到數據庫中的方法。之後,它返回到繼續閱讀下一個主題的解析器,該主題又將發送到右側(可能不同)的類。
這是用switch語句實現的,每個case指向一個不同的類構造函數。
如果我想使用事務的速度,我需要在解析之前就開始一個事務,通過解析和查詢構建(據我所知,所有在事務中構建的查詢,最後全部作爲一堆執行),然後在解析完整個文件後結束事務。
爲了使這一點更清晰,或更快的閱讀;代碼的想法是;
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();
}
我希望我明確提出了我的問題。
親切的問候,
嗨格雷厄姆Borland公司, 感謝您的快速回復。 我的問題的核心是如果開始一個沒有問題,讓我們說'一般事務'在某處,並且在事務之間有很多代碼。大多數發現的例子只是簡單地啓動一個事務,然後立即執行一個查詢或者通過某個事件的最大循環,然後執行查詢。 –
每個示例使用誇張。問題是,每個例子只是創建一個只創建和填充數據庫的程序。 我*可以*在主方法中啓動一個事務,在該事務保持打開狀態時運行整個程序的剩餘部分,然後當所有事情都完成時,成功並結束事務,最後執行程序中構建的所有查詢一旦。 我明白,這當然是誇大,不想要的。 –
在長時間運行的XML解析操作期間,事務處於打開狀態沒有任何問題。它提供了很多好處,包括速度,正如你自己注意到的那樣。 –