Фарқи байни JPA ва JDBC чист?


ҷавоб диҳед 1:

JDBC воситаи стандартии пайвастшавӣ ба пойгоҳи додаҳо ва SQL мебошад. Масалан, * -ро аз TableName ва ғайра интихоб кунед. Он метавонад сабтҳоро баргардонад, ки корбар метавонад дар замимаи худ коркард кунад ва онҳо ҳама вазифаҳои маъмулиро, ба монанди навсозӣ ва нест кардан, иҷро карда метавонанд .. Ин яке аз технологияҳои паси аксари Java DBA (аз ҷумла провайдерҳои JPA) мебошад.

Мушкилии умда бо барномаҳои анъанавии JDBC дар он аст, ки корбарон аксар вақт коди шиттер доранд, ки мантиқро бо SQL омехта мекунанд, дар байни сабтҳо ва ашёҳо харитасозии зиёд вуҷуд дорад.

JPA воситаи расмӣ барои харитасозии алоқамандии объектҳо мебошад. JPA технологияест, ки ба корбарон имкон медиҳад, ки объектҳоро дар рамз ва пойгоҳи додаҳо харита кунанд. JPA метавонад SQL-ро аз таҳиякунанда "пинҳон" кунад, бинобар ин ҳама чизҳои марбут ба синфҳои Java ва провайдер ба шумо имкон медиҳанд, ки онҳоро дур нигоҳ доред ва бор кунед. Бештари вақт, файлҳои харитасозии XML ё ёддоштҳоро дар бораи typetters ва getters метавонанд барои огоҳ кардани провайдери JPA истифода шаванд. Дар майдони пойгоҳи додаҳо кадом майдонҳои корбар таъин карда мешаванд? Пудина провайдери машҳури JPA мебошад.

Баъзе намунаҳои дигар, аз ҷумла OpenJPA, Topplink ва ғайра.

Hibernate ва дигар провайдерҳои машҳури JPA SQL менависанд ва JDBC-ро барои хондан ва навиштан аз базаи маълумот истифода мебаранд.

Ташаккури зиёд.

Агар ба шумо ҷавоби ман маъқул бошад, пас розӣ шавед.


ҷавоб диҳед 2:

Барои фаҳмидани фарқи ин ду каме мушкил хоҳад буд, агар шумо шурӯъкунандагон бошед. Ман фикр мекунам, шумо аввал бояд фарқи байни JDBC ва Hibernate -ро бифаҳмед. Умедворам, ки шумо медонед, ки JDBC чист, аммо ҳамчун як тавсифи мухтасар: JDBC барои пайвасткунии Java Database маъно дорад. JDBC як Java Java аст, ки дархостро зидди пойгоҳи дода пайваст ва идора мекунад. Он драйверҳоро барои пайваст шудан ба пойгоҳи додаҳо таъмин мекунад. Шумо метавонед 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, шумо метавонед ҳамон тавре ки Hibernate иҷро кунед, аммо дар формати JPA. Агар JPA рақс бошад, Hibernate ё асбоби дигаре лозим аст, то онро бо марҳилаи рақс таъмин кунад. Ба ҳар ҳол, ин маънои онро надорад, ки Ҳибернат бидуни JPA рақс карда наметавонад, Гибернат инчунин рақси худро дорад.


ҷавоб диҳед 3:

JDBC стандартест барои пайвасти мустақим ба пойгоҳи додаҳо ва корандозии SQL - масалан, B. Интихоб * АЗ ИСТИФОДАБАРАНДАГОН ва ғайра. Ин метавонад сабтҳоро баргардонад, ки шумо метавонед дар замимаи худ коркард кунед ва шумо метавонед ҳама вазифаҳои муқаррариро ба монанди INSERT, DELETE иҷро кунед. Иҷроиши тартиботи ҳифзшуда ва ғайра. Ин яке аз технологияҳои асосӣ барои дастрасӣ ба базаи Java (аз ҷумла провайдерҳои JPA) мебошад.

Яке аз мушкилот бо барномаҳои анъанавии JDBC дар он аст, ки онҳо аксар вақт рамзи мураккаб доранд, ки дар байни сабтҳо ва объектҳо харитасозии зиёд доранд, мантиқи бо SQL омехта ва ғайра.

JPA стандартест барои харитасозии объектӣ. Ин як технологияест, ки шумо метавонед барои харита кардани объектҳо дар ҷадвалҳои пойгоҳҳо ва пойгоҳҳо истифода баред. Ин имкон медиҳад, ки SQL аз таҳиякунанда "пинҳон" карда шавад, то танҳо синфҳои Java пӯшонида шаванд. Провайдер ба шумо имкон медиҳад, ки онҳоро захира кунед ва ба таври сеҳрнок бор кунед. Дар аксари ҳолатҳо, файлҳои харитасозии XML ё гирдоварҳо ва шарҳҳои setters метавонанд ба провайдери JPA истифода бурда шаванд, то кадом соҳаҳо дар объекти шумо бо кадом майдонҳо дар пойгоҳи додаҳо муқоиса карда шаванд. Таъминкунандаи беҳтарини JPA Hibernate аст, бинобар ин барои мисолҳои мушаххас як нуктаи ибтидоӣ хуб аст.

Мисолҳои дигар OpenJPA, Toplink ва ғайра мебошанд.