在尝试在 Blackberry 上使用 SQLite 时,我克服了许多障碍。现在我已经到了一切似乎都可以正常工作的地步,我正在寻找加快查询速度的方法。
有时我的应用程序从 Web 服务调用中检索大量数据,这些数据被解析并存储到我的数据库中。很多 DELETE、INSERT 和 UPDATE 正在进行。数据库调用似乎需要很多时间。
我想知道处理 SQLite 时的一些最佳实践。最好来自在黑莓平台上具有相关经验的人。任何加快删除或插入等的技巧......
好的教程的链接会很棒。或者一些有用的代码片段更好。
提前致谢。
编辑:
这是来自 Blackberry 的一些使用事务的示例代码。
import net.rim.device.api.ui.*;
import net.rim.device.api.ui.component.*;
import net.rim.device.api.ui.container.*;
import net.rim.device.api.database.*;
import net.rim.device.api.io.*;
public class UsingTransactions extends UiApplication
{
public static void main(String[] args)
{
UsingTransactions theApp = new UsingTransactions();
theApp.enterEventDispatcher();
}
public UsingTransactions()
{
}
}
class UsingTransactionsScreen extends MainScreen
{
Database d;
public UsingTransactionsScreen()
{
LabelField title = new LabelField("SQLite Using Transactions Sample",
LabelField.ELLIPSIS |
LabelField.USE_ALL_WIDTH);
setTitle(title);
add(new RichTextField(
"Updating data in one transaction in MyTestDatabase.db."));
try
{
URI myURI = URI.create("file:///SDCard/Databases/SQLite_Guide/" +
"MyTestDatabase.db");
d = DatabaseFactory.open(myURI);
d.beginTransaction();
Statement st = d.createStatement("UPDATE People SET Age=7 " +
"WHERE Name='Sophie'");
st.prepare();
st.execute();
st.close();
st = d.createStatement("UPDATE People SET Age=4 " +
"WHERE Name='Karen'");
st.prepare();
st.execute();
st.close();
d.commitTransaction();
d.close();
}
catch ( Exception e )
{
System.out.println( e.getMessage() );
e.printStackTrace();
}
}
}
他们每次都关闭声明是否有原因?在最后关闭一次不是更好吗(也许在 finally 块中??)。