Qual é a diferença entre JPA e JDBC?


resposta 1:

O JDBC é uma ferramenta padrão para conectar-se diretamente a um banco de dados e executar o SQL, por exemplo, selecione * em TableName etc. , insira procedimentos etc. É uma das tecnologias subjacentes à maioria dos Java DBA (incluindo provedores de JPA).

Um dos principais problemas dos aplicativos JDBC tradicionais é que o usuário geralmente pode ter um código de baixa qualidade em que a lógica é misturada ao SQL, ocorrem muitos mapeamentos entre conjuntos de dados e objetos, etc.

O JPA é uma ferramenta oficial para o mapeamento relacional de objetos. JPA é uma tecnologia que permite ao usuário mapear entre objetos nas tabelas de código e banco de dados. O JPA pode "ocultar" o SQL do desenvolvedor, para que tudo lide com as classes Java, e o provedor permite salvá-las e carregá-las remotamente. Principalmente, arquivos de mapeamento XML ou anotações em setters e getters podem ser usados ​​para informar o provedor JPA. quais campos no objeto de usuário são mapeados para quais campos no banco de dados. O hibernate é o provedor JPA mais popular.

alguns outros exemplos, incluindo OpenJPA, toplink, etc.

O Hibernate e outros provedores populares de JPA gravam SQL e usam JDBC para ler e gravar de e para o banco de dados.

Obrigado.

se você gosta da minha resposta, faça uma votação positiva.


resposta 2:

Seria um pouco complexo entender a diferença entre ambos se você é iniciante. Eu acho que você deve começar entendendo a diferença entre JDBC e Hibernate primeiro. Espero que você saiba o que é JDBC, ainda como uma descrição básica: JDBC significa Java Database Connectivity. JDBC é uma API Java para conectar e executar a consulta com o db. Ele fornece drivers para se conectar ao banco de dados. Você pode usar a API JDBC para acessar dados tabulares armazenados em qualquer banco de dados relacional. Com a ajuda da API JDBC, podemos salvar, atualizar, excluir e buscar dados do banco de dados.

Agora, o que é o Hibernate? É uma estrutura diferente do JDBC, você precisa importar as bibliotecas do Hibernate antes de usá-lo, enquanto o JDBC faz parte do próprio J2SE. O Hibernate faz a mesma coisa para a qual o JDBC é desenvolvido, mas você pode dizer que o Hibernate é um nível avançado do JDBC. O Hibernate simplifica o desenvolvimento de aplicativos Java para interagir com o banco de dados. É uma ferramenta ORM, significa que mapeia os objetos java com as tabelas db. Uma classe java pode representar uma tabela no db. Por exemplo, se você mapeou a tabela "emp_26" como classe Employee no Hibernate, você escreveria uma consulta simples e orientada a objetos para buscar todos os funcionários da tabela empl_26: "from Employee" // no Hibernate "selecione * de emp_26" // em JDBC.

Existem muitos recursos que o Hibernate fornece como cache, mapeamento de associação, mapeamento de herança, HQL, paginação e muitos outros que não estão disponíveis no JDBC.

Chegando ao JPA, é uma especificação, é um conjunto de classes e interfaces. A JPA precisa de uma ferramenta para implementá-la e essa ferramenta pode ser hibernada. Ao implementar o JPA, você pode fazer o mesmo que o Hibernate, mas no formato de JPA. Se o JPA é uma dança, o Hibernate ou alguma outra ferramenta é necessária para fornecer um estágio de dança. A propósito, isso não significa que o Hibernate não pode dançar sem o JPA, o Hibernate também tem sua própria dança.


resposta 3:

O JDBC é um padrão para conectar-se diretamente a um banco de dados e executar SQL nele - por exemplo, SELECT * FROM USERS, etc. É possível retornar conjuntos de dados que você pode manipular em seu aplicativo e fazer todas as coisas usuais, como INSERT, DELETE, executar procedimentos armazenados etc. É uma das tecnologias subjacentes por trás da maioria dos acessos a bancos de dados Java (incluindo provedores de JPA).

Um dos problemas dos aplicativos JDBC tradicionais é que muitas vezes você pode ter um código de baixa qualidade, onde ocorrem muitos mapeamentos entre conjuntos de dados e objetos, a lógica é misturada ao SQL etc.

JPA é um padrão para o mapeamento relacional de objetos. Essa é uma tecnologia que permite mapear entre objetos nas tabelas de código e banco de dados. Isso pode "ocultar" o SQL do desenvolvedor, de modo que tudo o que eles lidam são com as classes Java, e o provedor permite salvá-las e carregá-las magicamente. Principalmente, os arquivos de mapeamento XML ou anotações em getters e setters podem ser usados ​​para informar ao provedor JPA quais campos no seu objeto são mapeados para quais campos no banco de dados. O provedor JPA mais famoso é o Hibernate, por isso é um bom ponto de partida para exemplos concretos.

Outros exemplos incluem OpenJPA, toplink, etc.