Android   发布时间:2022-04-28  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了Android SQLite使用db.query()为JOIN而不是rawquery()大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我有tableA,tableB和tableC
表A和表B通过tableA.Id(PK)= tableB.tableAId(FK)连接,
表B和tableC通过tableB.Id(PK)= tableC.tableBId(FK)连接在一起

我想要这样做:

SELECT c.ALL from tableC c
INNER JOIN tableB b on c.tableBId = b.Id
INNER JOIN tableA a on b.tableAId = a.Id
WHERE a.Id = 108

我发现很多网站上的帖子使用db.rawquery()来实现这个查询.不过我也听说rawquery()比query()不那么安全.所以为了寻求最佳实践作为一个初学者,我的问题是:

有没有办法使用db.query()而不是db.rawquery()来实现此查询

提前致谢.

解决方法

所以值得一提的是,rawQuery()是一个技巧.但也存在另一种方法.

query()方法用于在一个表上执行查询.但是,在sqlite中如何使用JOIN表的最佳方法是使用SQLiteQueryBuilder和setTables()方法,您可以加入.

因此,我建议您使用提及的sqliteQueryBuilder.但是,对于rawQuery()方法,您只需要分配raw语句就更复杂了.

如果不知道如何开始,请检查这个例子:

> How to use a join with SQLite

注意:

rawQuery()比query()的安全性更低,因为query()方法使用比“raw”语句更安全的预编译语句.但是,始终可以(应该)使用占位符,这显着增加了语句的安全性,作为sql注入的主要保护,语句也变得更加人性化.

大佬总结

以上是大佬教程为你收集整理的Android SQLite使用db.query()为JOIN而不是rawquery()全部内容,希望文章能够帮你解决Android SQLite使用db.query()为JOIN而不是rawquery()所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。