Queries can be resolved directly from a Map parameter instead of using Apex code variables.
Database.queryWithBinds, Database.getQueryLocatorWithBinds, Database.countQueryWithBinds
public static List<Account> simpleBindingSoqlQuery(Map<String, Object> bindParams) {
String queryString =
'SELECT Id, Name ' +
'FROM Account ' +
'WHERE name = :name';
return Database.queryWithBinds(
queryString,
bindParams,
AccessLevel.USER_MODE
);
}
String accountName = 'Acme Inc.';
Map<String, Object> nameBind = new Map<String, Object>{'name' => accountName};
List<Account> accounts = simpleBindingSoqlQuery(nameBind);
System.debug(accounts);