Каква е разликата между JPA и JDBC?


Отговор 1:

JDBC е стандартен инструмент за директно свързване към база данни и стартиране на SQL срещу него, например изберете * от TableName и др. Може да се върнат набори от данни, които потребителят може да обработва в приложението си, и той може да прави всички обичайни неща като актуализиране, изтриване , вмъкнете процедури и т.н. Това е една от основните технологии зад повечето Java DBA (включително JPA доставчици).

Един от основните проблеми при традиционните JDBC приложения е, че потребителят често може да има някакъв глупав код, при който логиката е смесена със SQL, има много картографиране между набори от данни и обекти и т.н.

JPA е официален инструмент за обективно релационно картографиране. JPA е технология, която позволява на потребителя да картографира между обекти в таблици с код и база данни. JPA може да „скрие“ SQL от разработчика, така че всички те да се занимават в Java класове, а доставчикът ви позволява да ги запишете и да ги заредите дистанционно. Най-вече, XML файловете за картографиране или поясненията на сетери и getters могат да се използват, за да кажат на JPA доставчика. кои полета в картата на потребителски обект до кои полета в БД. хибернация е най-популярният доставчик на JPA.

някои други примери, включително OpenJPA, toplink и т.н.

Хибернация и други популярни доставчици за JPA пишат SQL и използват JDBC за четене и запис от и към БД.

Благодаря ти.

ако ви харесва отговора ми, тогава го подкрепете.


Отговор 2:

Ще бъде леко сложно да разберем разликата между двамата, ако си начинаещ. Мисля, че трябва да започнете от разбирането на разликата между JDBC и Hibernate. Надявам се да знаете какво е JDBC, все още като описание: JDBC означава Java Database Connectivity. JDBC е Java API за свързване и изпълнение на заявката с db. Той предоставя на драйверите да се свързват с db. Можете да използвате JDBC API за достъп до таблични данни, съхранявани във всяка релационна база данни. С помощта на JDBC API можем да запазваме, актуализираме, изтриваме и извличаме данни от базата данни.

Сега какво зимува? Това е рамка за разлика от JDBC, uv да импортирате библиотеките на хибернация преди да я използвате, докато JDBC е част от самата J2SE. Hibernate прави същото, за което е разработен JDBC, но може да се каже, че Hibernate е предварително ниво на JDBC. Hibernate опростява развитието на приложението Java, за да взаимодейства с базата данни. Това е ORM инструмент, означава, че картографира обектите Java с db таблиците. Ява клас може да представлява таблица в db. Например, ако сте картографирали таблицата "emp_26" като клас на служители в хибернация, тогава ще напишете обикновена обектно-ориентирана заявка, за да извлечете всички служители от таблицата empl_26: "от служител" // в хибернация "изберете * от emp_26" // в JDBC.

Има адски много функции, които Hibernate предоставя като кеш, асоциация-картографиране, картографиране на наследство, HQL, създаване на страници и много други, които не са налични в JDBC.

Идвайки за JPA, това е спецификация, това е набор от класове и интерфейси. JPA се нуждае от инструмент, за да го приложи и този инструмент може да бъде в хибернация. Като внедрите JPA, можете да направите същото, което прави Hibernate, но във формата на JPA. Ако JPA е танц, тогава Hibernate или някакъв друг инструмент е необходим, за да му осигурите танцова сцена. Между другото това не означава, че зимен сън не може да танцува без JPA, Hibernate също има свой танц.


Отговор 3:

JDBC е стандарт за директно свързване към DB и стартиране на SQL срещу него - напр. ИЗБЕРЕТЕ * ОТ ПОТРЕБИТЕЛИ и др. Могат да бъдат върнати набори от данни, които можете да обработвате в приложението си, и можете да правите всички обичайни неща като INSERT, DELETE, стартирайте съхранени процедури и пр. Това е една от основните технологии, стоящи зад повечето достъпа до база данни на Java (включително JPA доставчици).

Един от проблемите с традиционните JDBC приложения е, че често можете да имате някакъв глупав код, при който се срещат много картографиране между набори от данни и обекти, логиката се смесва със SQL и т.н.

JPA е стандарт за обектно релационно картографиране. Това е технология, която ви позволява да картографирате между обекти в таблици с код и база данни. Това може да "скрие" SQL от разработчика, така че всичко, с което се занимават, са Java класове, а доставчикът ви позволява да ги запишете и да ги заредите магически. Най-вече, XML файловете за картографиране или поясненията за getters и setters могат да се използват, за да кажат на JPA доставчика кои полета на вашата обектна карта и кои полета в БД. Най-известният доставчик на JPA е Hibernate, така че е добро място да започнете с конкретни примери.

Други примери включват OpenJPA, toplink и т.н.