MO
String для sql'я, PreparedStatement для обращения к бд, ResultSet для получения результата, и короче куча еще всего.
Еще ORM сверху своей логики накручивает.
Но за время дискового io при обращении к базе у тебя приложение успеет создать и прожевать десятки тысяч этих классов.
Это всё вообще ничтожно в плане потребляемых ресурсов в сравнение с тем, что в БД происходит. Например новое подключение это запуск нового процесса на сервере со всеми вытекающими. Поэтому параллелизм через dbms_job или хинт parallel в запросе это крайне тяжелые штуки.