JDBC vs. Hibernate
O Java Database Connectivity (também conhecido como JDBC) é uma API criada especificamente para a linguagem de programação Java. Ele define como um cliente pode acessar um banco de dados, fornecendo métodos para consultar e atualizar dados em um banco de dados. Ele é orientado mais especificamente para bancos de dados relacionais. Foi introduzido pela primeira vez no mercado como parte da Java 2 Platform, Standard Edition, versão 1.1 (ou J2SE). Ele foi empacotado junto com uma ponte JDBC para ODBC de implementação de referência, permitindo conexões com a API a qualquer fonte de dados acessível por ODBC no ambiente host da JVM.
O Hibernate é uma biblioteca de mapeamento orientado a objetos (ou biblioteca ORM) criada especificamente para a linguagem Java. Ele fornece uma estrutura para mapear um modelo de domínio orientado a objetos para um banco de dados relacional tradicional. Ele também resolve problemas de incompatibilidade de impedância relacional do objeto - ou seja, problemas nos quais um sistema de gerenciamento de banco de dados relacional (ou RDBMS) está sendo usado por um programa escrito em uma linguagem ou estilo de programação orientada a objetos. Isso é feito substituindo os acessos diretos ao banco de dados relacionados à persistência por funções de manipulação de alto nível. É um software livre, de código aberto e é distribuído sob a Licença Pública Geral Menor GNU.
O JDBC funciona permitindo que várias implementações existam e sejam usadas pelo mesmo aplicativo. Ele fornece um mecanismo pelo qual os pacotes Java corretos são carregados e registrados dinamicamente com o JDBC Driver Manager, que é usado como uma fábrica de conexões, que cria conexões JDBC. Essas conexões suportam a criação e execução de instruções. Eles podem ser instruções de atualização (os SQLs CREATE, INSERT, UPDATE e DELETE, por exemplo). Eles também podem ser instruções de consulta, como SELECT. Uma conexão JDBC também pode chamar procedimentos armazenados, ou seja, aqueles procedimentos armazenados no dicionário de dados do banco de dados.
O Hibernate funciona principalmente para mapear de classes Java para tabelas de banco de dados, bem como de tipos de dados Java para tipos de dados SQL. Ele também fornece recursos de consulta e recuperação de dados. É capaz de gerar chamadas SQL, aliviando o desenvolvedor da manipulação manual de conjuntos de resultados e conversão de objetos. Isso mantém o aplicativo portátil para todos os bancos de dados SQL suportados pela biblioteca. Ele mapeia as classes Java para as tabelas do banco de dados, configurando um arquivo XML (no qual o Hibernate é capaz de gerar código-fonte esquelético para as classes de persistência) ou usando a Anotação Java (que torna a ação anterior discutível). O Hibernate também suporta o mapeamento de tipos de valor personalizados, o que possibilita três cenários específicos: substituindo o tipo SQL padrão, escolhido pelo Hibernate ao mapear uma coluna para uma propriedade; mapeando o Java Enum para colunas como se fossem propriedades regulares; e mapeando uma única propriedade para várias colunas.
Resumo:
1. JDBC é uma API que define como um cliente pode acessar um banco de dados; O Hibernate é uma biblioteca ORM que fornece uma estrutura para mapear um modelo de domínio orientado a objetos para um banco de dados relacional tradicional.
2. O JDBC permite que várias implementações existam e sejam usadas pelo mesmo aplicativo; Mapas de hibernação de classes Java para tabelas de banco de dados.