Я бы сказал, какой бы шаблон проектирования вы ни использовали, уровень DAO всегда должен быть независимым и не должен зависеть ни от одного типа базы данных.
Например: если кто-то изменит строку подключения к БД с От Mysql до Oracle, чем это не должно влиять на уровень службы и контроллера.