Android 之 Room 库的使用
前言
最近疫情待在家里,想着没事就做一个 APP 练练手,需要用到数据库的本地化方案,便尝试深入了解以下 Google 官方的 ORM 库 Room,配置和使用还算比较简单,没用过的可以查看 官方文档, 上手还算比较容易。可以参考 Google 官方在 GitHub 上的示例库 [Android Room with a View] , 一步一步非常清晰的展现了框架的架构与流程。
正文
问题归纳
新入手的库当然会遇到坑的啦!
模糊查询的 Sql 语句拼写问题
本来一切增删改查都进行的很顺利,然后 APP 中有一个模糊搜索的功能。
例如查找 person 表中 name 或者 name_pinyin 包含某字符串的所有用户,一般 sql 语句是这样
1 | Select * From person Where Name Like %name% OR Name_Pinyin Like %name_pinyin% |
在 Android 端里面一般用的数据库都是注解 @query ,后面拼上需要查询的语句,当然每个数据库框架要求的格式可能不一样,但是最终编译成的最终语句肯定是上面那种格式的。
终于,皇天不负有心人,最终经一个群里大佬提醒以及在 Stack Overflow 上面搜了一下,找到了最终答案,应该是这样的
1 |
原来是用双竖杠去拼接,而不是加号, 在 sql 语句拼接中:
在 SQL 中的 SELECT 语句中,可使用一个特殊的操作符来拼接两个列。
根据你所使用的 DBMS,此操作符可用加号(+)或两个竖杠(||)表示。
在 MySQL 和 MariaDB 中,必须使用特殊的函数。
说明:是 + 还是 ||?
Access 和 SQL Server 使用 + 号。DB2、Oracle、PostgreSQL、SQLite 和 Open Office Base 使用 ||。详细请参阅具体的 DBMS 文档。
Stack Overflow 上的评论:

to be continued…
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 Tamsiree!
评论