gpt4 book ai didi

java - SQLiteStatement 为什么没有 SELECT 语句的方法 - 任何解决方法加上为什么没有线程安全

转载 作者:太空宇宙 更新时间:2023-11-03 10:47:52 31 4
gpt4 key购买 nike

您是否知道如何预编译 SELECT 语句返回 Cursor 并多次使用它的解决方法(我 99% 确定它可以使用 sqlite,因为 java 桌面驱动程序允许使用 SELECT 返回游标进行预编译)?不幸的是,作为源,我不能使用 QueryBuilder,而是使用纯 SQL String 类型的 SELECT 语句(带有 ? 作为参数)。由于效率,预编译会很棒。

另外,在实践中 SQLiteStatement 不是线程安全的意味着什么?我如何才能将其替换为线程安全且高效(预编译)?

最佳答案

要预编译语句,请使用 compileStatement function :

SQLiteStatement stmt = db.compileStatement("SELECT X FROM Y WHERE Z = ?");
...
stmt.bindString(1, "foo");
String x = stmt.simpleQueryForString();

不幸的是,不可能从这样的预编译语句返回游标。如果要获取多行或多列,则必须使用queryrawQuery

请注意,SQLite 非常快;你不应该费心优化语句编译,除非你实际测量它是你应用程序的瓶颈。

关于java - SQLiteStatement 为什么没有 SELECT 语句的方法 - 任何解决方法加上为什么没有线程安全,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19283856/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com