Dynamic SOQL

DEX455 - Dynamic Apex 完全指南:Describe 信息、动态 SOQL/SOSL 与动态 DML

📄 第 207 页 🎬 视频课程

课程章节介绍

同学们,我们来看今天这一页,讲的是动态SOQL。动态SOQL其实就是我们在Apex代码里,在运行的时候,自己去拼接一个SOQL查询字符串,然后用它去查数据。 实现动态查询,主要靠两个方法:一个是 `Database.query()`,另一个是 `Database.queryWithBinds()`。都是用来执行我们拼出来的那个SOQL字符串。 有一个要注意的点,从API 55.0版本开始,这两个方法都支持一个 `accessLevel` 参数,可以用它来指定是以用户模式还是系统模式来运行这个查询。 接着我们来看绑定变量的使用。动态SOQL里可以写简单的绑定变量,但是你不能再对这些绑定变量使用点号去访问字段,比如 `:acc.Name` 这样就不行了。你需要先把字段值取出来,放到一个单独的变量里,再传进去。 如果你用的是 `queryWithBinds`,它会从一个Map里读取绑定变量的值。这里要注意命名规则,Map里的键必须以ASCII字母开头,不能是数字开头,当然也不能使用SOQL的保留关键字。 简单来说,把字段值先存到简单变量里,安全又灵活。这样你就能在运行时构建出你想要的查询了。好,这一页就这些,大家消化一下。

关键词

Apex Salesforce Developer Guide