Я бы сказал, что это зависит от того, что вы хотите, чтобы "слой БД" делал ...
Если у вас есть общие подпрограммы для выполнения хранимой процедуры или оператора sql, которые возвращают набор данных, то использование статических методов будет для меня более целесообразным, поскольку вам не нужна постоянная ссылка на объект, создавший набор данных для тебя.
Я бы также использовал статический метод, если бы создал слой БД, который возвращал строго типизированный класс или коллекцию в качестве результата.
Если, с другой стороны, вы хотите создать экземпляр класса, используя заданный параметр, такой как идентификатор (см. Ответ @ barret-conrad), для подключения к БД и получения необходимой записи, то вы, вероятно, захотите не хочу использовать статический метод в классе. Но даже тогда я бы сказал, что у вас, вероятно, есть какой-то класс DB Helper, в котором DID есть статические методы, на которые опирался ваш другой класс.