なぐりがき

SalesforceからときどきIdol



Salesforce:動的SOQLと静的SOQL

コーデングしていたら、どっちを使うべきか迷ったのでメモ。
基本的にやってることは変わらないので、どちらでもいいという場合はあるけど。







動的SOQL

String query = 'SELECT Id FROM Account WHERE NAME ='+ 変数

静的SOQL

List account =[SELECT Id FROM Account WHERE Name =:変数]

どちらを使用するか

調べた感じだと静的SOQLを使用する方がよいようだった!
理由としてはSOQLインジェクション?SQLインジェクションがバインド変数を使うことで、防げるからということ。

動的SOQLでもインジェクション防止のメソッドはありますが、静的SOQLのがお勧めみたい。
いつも迷ってた、かつ人に理由が説明できないので、統一できないなぁと思っていたので、これで解決できそう。