Pré-requisito: JDBC

Necessidade de estrutura de Hibernate

O Hibernate é usado para superar as limitações do JDBC, como:

  1. O código JDBC depende do software de banco de dados que está sendo usado, ou seja, nossa lógica de persistência é dependente, por causa do uso de JDBC. Aqui, estamos inserindo um registro na tabela Employee, mas nossa consulta depende do software de banco de dados, ou seja, estamos usando MySQL. Mas se mudarmos nosso banco de dados, essa consulta não funcionará.

  2. Se estiver trabalhando com JDBC, a troca do banco de dados no meio do projeto é muito cara.
  3. O código JDBC não é um código portátil em vários softwares de banco de dados.
  4. No JDBC, o tratamento de exceções é obrigatório. Aqui podemos ver que estamos lidando com muitas exceções para conexão.



  5. Ao trabalhar com JDBC, não há relacionamento de nível de objeto de suporte.
  6. Em JDBC, ocorre um problema de Boilerplate, ou seja, para cada projeto, temos que escrever o código abaixo. Isso aumenta o comprimento do código e reduz a legibilidade.

Para superar os problemas acima, usamos a ferramenta ORM, ou seja, nada além do framework Hibernate. Usando o Hibernate podemos evitar todos os problemas acima e podemos desfrutar de algum conjunto adicional de funcionalidades.

Sobre o Hibernate Framework

Hibernate é um framework que fornece alguma camada de abstração , o que significa que o programador não precisa se preocupar com as implementações, Hibernate faz as implementações para você internamente como Estabelecendo uma conexão com o banco de dados, escrevendo consulta para executar operações CRUD etc .
É uma estrutura java que é usada para desenvolver lógica de persistência. A lógica de persistência significa armazenar e processar os dados para uso prolongado. Mais precisamente, o Hibernate é um framework java ORM (mapeamento objeto-relacional) de código aberto, não invasivo e leve para desenvolver objetos que são independentes do software de banco de dados e criam lógica de persistência independente em todos os JAVA, JEE.

Framework significa que é um software especial instalável que fornece uma camada de abstração em uma ou mais tecnologias como JDBC, Servlet, etc. para simplificar ou reduzir a complexidade do processo de desenvolvimento.

Código aberto significa:

  • O framework Hibernate está disponível para todos sem nenhum custo.
  • O código-fonte do Hibernate também está disponível na Internet e também podemos modificar o código.

Peso leve significa:

  • Hibernate é menor em tamanho significa que o pacote de instalação não é grande.
  • O Hibernate não requer nenhum contêiner pesado para execução.
  • Não requer programação do modelo POJO e POJI.
  • O Hibernate pode ser usado sozinho ou podemos usar o Hibernate com outra tecnologia e framework Java.

Meios não invasivos:

  • As classes de desenvolvimento de aplicativos do Hibernate são classes fracamente acopladas com respeito à API do Hibernate, ou seja, a classe do Hibernate não precisa implementar interfaces da API do Hibernate e não precisa estender as classes da API do Hibernate.

Funcionalidades suportadas pelo framework Hibernate

  • O framework Hibernate suporta operações Auto DDL . Em JDBC manualmente, temos que criar a tabela e declarar o tipo de dados para cada coluna. Mas o Hibernate pode fazer operações DDL para você internamente, como criar uma tabela, eliminar uma tabela, alterar uma tabela, etc.
  • O Hibernate oferece suporte à geração automática de chave primária . Isso significa que no JDBC temos que definir manualmente uma chave primária para uma tabela. Mas o Hibernate pode fazer essa tarefa para você.
  • O framework Hibernate é independente do banco de dados porque suporta HQL (Hibernate Query Language) que não é específico para nenhum banco de dados, enquanto JDBC é dependente do banco de dados.
  • No Hibernate, o tratamento de exceções não é obrigatório , enquanto no JDBC o tratamento de exceções é obrigatório.
  • O Hibernate oferece suporte à memória cache, enquanto o JDBC não oferece suporte à memória cache.
  • Hibernate é uma ferramenta ORM que significa que suporta mapeamento relacional de objetos. Considerando que JDBC não é orientado a objetos, estamos lidando com valores que significam dados primitivos. No hibernate, cada registro é representado como um objeto, mas no JDBC cada registro nada mais é do que um dado que nada mais é do que valores primitivos.