Разбирался с JDBC. Долго думал.
Одно сплошное разочарование :(
С одной стороны просто и удобно. Сделано очень много для портируемости кода между различными СУБД. В этом смысле получилось, наверное, даже лучше чем в DBI.
И все-таки с учетом того, что String в java это объект, и порождение/удаление объекта операция весьма дорогая, смотреть на то как происходит выгребание данных из БД попросту ужасно :(
Я не нашел никакого инструментария, для того чтобы была повторно использована память, вместо создания нового объекта при выгребании каждой ячейки.
Кроме того, Java все-таки подразумевает некую строгость кода, по сравнению с Perl/PHP. Поэтому полученные данные возвращать в виде Vector<vector<object>>, что по сути является нормой при написании оберток над БД в perl/PHP уже неприятно, от такого кода на Java будет тошнить. А писать корректно (создавать отдельные классы, и возвращать из оберток полноценный объект) уже весьма трудоемко.