You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android中如何正确拼接带变量的原生SQL查询并修复语法错误

修复Android SQLite原生查询的语法错误

你这段代码的问题很明确:LIMIT 5没有被包含在字符串拼接的范围内,在Java语法里会被识别成无效的标识符,同时SQL语句末尾的分号也完全没必要加——rawQuery方法会自动处理语句的执行边界。

修复后的代码如下:

Cursor cursor = mDB.rawQuery("SELECT * FROM " + dbn + " LIMIT 5", null);

额外的安全与兼容性提示

如果你的表名dbn有可能是SQL关键字,或者是来自用户输入的内容,建议用反引号把表名包裹起来,避免语法冲突:

Cursor cursor = mDB.rawQuery("SELECT * FROM `" + dbn + "` LIMIT 5", null);

不过要注意:这种字符串拼接方式如果表名是用户可控的,会存在SQL注入风险,所以尽量使用自己预先定义的安全表名,不要直接将用户输入作为表名来拼接哦。

内容的提问来源于stack exchange,提问作者iamal

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 10:41:21