JPA мен JDBC арасындағы айырмашылық неде?


жауап 1:

JDBC - бұл дерекқорға тікелей қосылудың және SQL іске қосудың стандартты құралы. Мысалы, TableName ішінен * таңдаңыз, т.б. Бұл пайдаланушының өз қосымшасында өңдей алатын жазбаларын қайтара алады және олар барлық қарапайым тапсырмаларды жаңарту және жою сияқты жұмыстарды орындай алады.Осы Java DBA-дың (соның ішінде JPA провайдерлерінің) негізгі технологияларының бірі болып табылады.

Дәстүрлі JDBC қосымшаларының негізгі проблемасы - пайдаланушыларда логикалықты SQL-мен, жазбалар мен нысандар арасындағы көптеген салыстырулармен және басқалармен үйлесетін қарапайым код бар.

JPA - объектілерді реляциялаудың ресми құралы. JPA - бұл пайдаланушыларға кодтар мен мәліметтер кестелеріндегі объектілерді картаға түсіруге мүмкіндік беретін технология. JPA SQL-ді жасаушыдан «жасыра» алады, сондықтан Java сыныптарына қатысты барлық нәрсе және провайдер оларды қашықтан сақтауға және жүктеуге мүмкіндік береді. Көбінесе, JPA провайдеріне хабарлау үшін XML салыстыру файлдарын немесе стертер және түсіру аннотацияларын қолдануға болады. Пайдаланушы объектісіндегі қандай өрістер мәліметтер базасындағы қай өрістерге тағайындалады? Күту - ең танымал JPA провайдері.

Кейбір басқа мысалдар, мысалы, OpenJPA, Topplink, т.б.

Күту және басқа танымал JPA провайдерлері SQL жазады және JDBC қолданып, дерекқорға және оған жазады.

Сізге көп рахмет.

Егер менің жауабым ұнаса, келісіңіз.


жауап 2:

Егер сіз жаңадан бастаушы болсаңыз, екеуінің арасындағы айырмашылықты түсіну біршама күрделі болар еді. Менің ойымша, сіз алдымен JDBC мен Hibernate арасындағы айырмашылықты түсінуіңіз керек. Сіз JDBC деген не екенін білесіз деп үміттенемін, бірақ қысқаша сипаттама: JDBC Java Database Connectivity дегенді білдіреді. JDBC - бұл сұранысты дерекқорға қосуға және іске қосуға арналған Java API. Ол дерекқорға қосылу үшін драйверлерді ұсынады. Сіз кез-келген реляциялық дерекқорда сақталған кестелік деректерге қол жеткізу үшін JDBC API қолдана аласыз. JDBC API көмегімен деректерді сақтау, жаңарту, жою және дерекқордан алуға болады.

Қазір ұйқы деген не? JDBC-тен айырмашылығы, оларды пайдалану алдында Hibernate кітапханаларын импорттау керек, ал JDBC J2SE-тің бір бөлігі. Hibernate бағдарламасы JDBC үшін жасалған нәрсені жасайды, бірақ сіз Hibernate - JDBC жетілдірілген деңгейі деп айта аласыз. Күту күйі мәліметтер базасымен өзара әрекеттесу үшін Java қосымшасының дамуын жеңілдетеді. Бұл ORM құралы, яғни Java нысандарын DB кестелеріне тағайындайды. Java сыныбы кестені db түрінде ұсына алады. Мысалы, егер сіз emp_26 кестесін Күту режимінде жұмысшылар класы ретінде тағайындаған болсаңыз, барлық қызметкерлерді empl_26 кестесінен алу үшін қарапайым объектке бағытталған сұранысты жазыңыз: «қызметкерден» // күту режимінде «таңдаңыз * emp_26» // JDBC.

Hibernate ұсынатын кэш, картаға түсіру, мұрагерлік карта, HQL, параграфия және басқалары JDBC-де жоқ көптеген мүмкіндіктер бар.

JPA - спецификация, сыныптар мен интерфейстер жиынтығы. JPA оны жүзеге асыру үшін құрал қажет, және бұл құралды ұйықтауға болады. JPA бағдарламасын іске қосу арқылы сіз күту режимін жасай аласыз, бірақ JPA форматында. Егер JPA би болса, оны күту режимі немесе оны би сахнасымен қамтамасыз ету үшін басқа құрал қажет. Айтпақшы, бұл Гибернаттың JPA-сыз билей алмайтынын білдірмейді, Гибернаттың да өз биі бар.


жауап 3:

JDBC - бұл дерекқорға тікелей қосылу және SQL іске қосу үшін стандарт - мысалы. B. ТАҢДАУ * ПАЙДАЛАНУШЫЛАРДЫ ЖӘНЕ БАСҚАРУ Бұл сіздің бағдарламаңызда өңдей алатын жазбаларды қайтарады және сіз INSERT, DELETE сияқты қарапайым тапсырмаларды орындай аласыз. Сақталған процедураларды орындау және т.б. Бұл Java деректер базасына (соның ішінде JPA провайдерлеріне) қол жеткізудің негізгі технологияларының бірі болып табылады.

Дәстүрлі JDBC қосымшаларының проблемаларының бірі - оларда көбінесе жазба мен нысандар арасындағы салыстыру көп, SQL-мен араласқан логика бар және т.б.

JPA - бұл объектілік-реляциялық картаға түсіру үшін стандарт. Бұл кодтарды және деректер кестесінің нысандарын картографиялау үшін қолдануға болатын технология. Бұл SQL-ді жасаушыдан «жасыруға» мүмкіндік береді, осылайша тек Java сыныптары ғана қамтылады. Провайдер оларды үнемдеуге және оларды сиқырлы түрде жүктеуге мүмкіндік береді. Көптеген жағдайларда, JPA провайдеріне, нысандағы қай өрістер дерекқордың қай өрістерімен салыстырылғандығын айту үшін, XML салыстыру файлдарын немесе түсіру және стертер аннотацияларын қолдануға болады. Ең танымал JPA провайдері - Hibernate, сондықтан бұл нақты мысалдар үшін жақсы бастама.

Басқа мысалдар - OpenJPA, Toplink, т.б.