Android开发SQLite操作点击按钮应用崩溃logcat报错求助
报错原因分析
- 核心错误为SQL语法错误:你执行的查询语句
SELECT _id, data FROM table中直接使用table作为表名,而table是SQLite官方保留关键字,不允许直接作为表名、列名等标识符使用,因此SQL编译阶段直接抛出异常,最终触发应用崩溃。 - 错误代码可直接定位到
com.example.db1.MyDbAdapter类的getData方法第27行,也就是你组装查询SQL或者调用SQLiteDatabase.query方法传入表名的位置。
解决方案
有两种修复方案,优先推荐第一种:
- 方案1(推荐):修改表名,避免使用保留关键字
将数据库表名从table修改为非保留关键字的名称,例如data_records、user_table等,同时同步修改所有涉及该表的代码:包括建表语句、增删改查所有操作中传入表名的参数。 - 方案2(仅用于兼容已有旧业务):用反引号包裹保留关键字
如果你确实需要保留table作为表名,在所有用到该表名的SQL语句中,用反引号`把表名包裹即可。例如查询语句修改为SELECT _id, data FROM \table`,如果是调用SQLiteDatabase.query方法,传入的表名参数写为``"table`"``。
额外提醒:SQLite的保留关键字还有
order、group、select、where等,后续命名表、字段时都要避免直接使用这类词汇,否则会触发同类语法错误。
内容的提问来源于stack exchange,提问作者SalsaL
相关产品推荐
相关产品推荐

