62
обеспечения оптимальной производительности. JDO - изначально он
разрабатывался как Java ORM standard, который может работать с любым data
source, однако особой популярности так и не приобрел.
Чем он отличается от Hibernate: синтаксис запросов не SQL-подобный, а
Java-подобный; после компиляции нужно запускать code enhancer, что добавляет
еще один шаг в цикле разработки, в то время как тот же Hibernate может
работать в обоих режимах, как с enhancer, так и без него.
Опять же одного стандарта, как правило, мало, поэтому часто
приходится использовать implementation-spefic механизмы. Интерфейс Java
Database Connectivity (JDBC) API был создан как ключевая часть платформ Java
2 Standard Edition (J2SE) и Java 2 Enterprise Edition (J2EE). Он представляет
собой основной механизм, основанный на стандартах, обеспечивающий
программам на языке Java доступ к реляционным базам данных.
Интерфейс JDBC API обладает высокой степенью гибкости и
предоставляет программистам непосредственный контроль над доступом к базам
данных и управление кэшем. В JDBC имеются функции получения из базы
данных автоматически создаваемых ключей, способность открывать несколько
наборов результатов, улучшенное подключение и организация пула
предложений. JDBC - в чистом виде используется не часто, потому как
приходится писать много кода, обычно реализовать проект с помощью JDBC
довольно сложно и громоздко.
Так как приходится писать SQL руками, вызывать его, работать с
ResultSet, самостоятельно реализовывать кеширование, маппинг классов на
реляционную модель, кеширование на нескольких уровнях.
Hibernate представляет собой эффективную, высокопроизводительную
объектно-реляционную среду с сохранением состояния и службу запросов.
Hibernate позволяет разрабатывать классы с сохранением состояния объектно-
ориентированной идиомы, включая ассоциации, наследование, полиморфизм,
композиции и наборы.
Среда Hibernate позволяет составлять запросы в собственном мобильном
SQL-расширении (HQL), а также в исходном SQL или с использованием
объектно-ориентированных критериев и примеров API. Такие среды, как Spring,