JPA مجموعه ای از مفاهیم را تعریف میکند که میتواند توسط هر ابزار یا چارچوبی پیاده سازی شود.از طریق JPA توسعه دهنده میتواند نقشه ها، ذخیره، به روز رسانی و بازیابی اطلاعات را از پایگاه داده های رابطه ای به اشیا Java جاوا و بالعکس انجام دهد. JPA یک مشخصه است و چندین پیاده سازی در دسترس است.
JPA چیست و چه کاربردی در زبان جاوا دارد؟
استاندارد Java ORM برای ذخیره، دسترسی و مدیریت اشیا Java جاوا در یک پایگاه داده رابطه ای به عنوان یک مشخصه، Java Persistence API مربوط به پایداری است، که بی قاعده به معنای هر مکانیزمی است که توسط آن اشیا جاوا فرآیند برنامه را ایجاد میکنند. لازم نیست که همه اشیا جاوا ماندگار شوند، اما اکثر برنامه ها اشیا کلیدی تجاری را ادامه میدهند. مشخصات JPA به شما امکان میدهد مشخص کنید کدام یک از اشیا باید باقی بمانند و این اشیا چگونه باید در برنامه های جاوای شما باقی بمانند.
JPA به خودی خود یک ابزار یا چارچوب نیست. بلکه مجموعه ای از مفاهیم را تعریف میکند که میتواند توسط هر ابزار یا چارچوبی پیاده سازی شود. در حالی که مدل نقشه برداری شیء-رابطه ای JPA در اصل مبتنی بر Hibernate بود، از آن زمان تکامل یافته است. به همین ترتیب، در حالی که JPA در ابتدا برای استفاده با پایگاه داده های رابطه ای SQL در نظر گرفته شده بود، برخی از پیاده سازی های JPA برای استفاده با مجموعه داده های NoSQL تمدید شده اند. یک چارچوب محبوب که از JPA با NoSQL پشتیبانی میکند EclipseLink است، پیاده سازی مرجع برای JPA 2.2.
کجا میتوان از JPA استفاده کرد؟
برای کاهش بار نوشتن کدهای مدیریت شی object رابطه ای، یک برنامه نویس از چارچوب "JPA Provider" پیروی میکند، که امکان تعامل آسان با نمونه پایگاه داده را فراهم میکند.
تعامل و چرخه در JPA
JPA و EJB
همانطور که قبلاً اشاره شد، JPA به عنوان زیرمجموعه ای از EJB 3.0 معرفی شد، اما از آن زمان به بعد به عنوان مشخصات خاص خود تکامل یافت. EJB مشخصات با تمرکز متفاوت از JPA است، و در یک ظرف EJB اجرا میشود. هر ظرف EJB شامل یک لایه ماندگاری است که توسط مشخصات JPA تعریف شده است.
جاوا ORM چیست؟
اگرچه در اجرا متفاوت هستند، اما هر اجرای JPA نوعی لایه ORM را فراهم میکند. برای درک ابزارهای سازگار با JPA و JPA، باید درک کاملی از ORM داشته باشید.
نقشه برداری شی-رابطه ای وظیفه ای است که توسعه دهندگان دلیل خوبی برای جلوگیری از انجام آن به صورت دستی دارند. چارچوبی مانند Hibernate ORM یا EclipseLink آن کار را در یک کتابخانه یا چارچوب، یک لایه ORM کدگذاری میکند. به عنوان بخشی از معماری برنامه، لایه ORM وظیفه مدیریت تبدیل اشیا software نرم افزاری برای تعامل با جداول و ستون ها را در یک پایگاه داده رابطه ای دارد. در جاوا، لایه ORM کلاسها و اشیا جاوا را تبدیل میکند تا بتوان آنها را در یک پایگاه داده رابطه ای ذخیره و مدیریت کرد.
به طور پیش فرض، نام شی object باقی مانده به عنوان جدول تبدیل میشود و فیلدها به ستون تبدیل میشوند. پس از تنظیم جدول، هر ردیف جدول مربوط به یک شی در برنامه است. نگاشت اشیا قابل تنظیم است، اما پیش فرض ها به خوبی کار میکنند.
پیکربندی لایه Java ORM
وقتی پروژه جدیدی را برای استفاده از JPA راه اندازی میکنید، باید Datastore و ارائه دهنده JPA را پیکربندی کنید. برای اتصال به پایگاه داده انتخابی خود SQL یا (NoSQL اتصال دهنده datastore) را پیکربندی خواهید کرد. شما همچنین ارائه دهنده JPA را که چارچوبی مانند Hibernate یا EclipseLink است، گنجانده و پیکربندی کنید. اگرچه میتوانید JPA را به صورت دستی پیکربندی کنید، بسیاری از توسعه دهندگان تصمیم میگیرند از پشتیبانی خارج از جعبه Spring استفاده کنند. برای نمایش نصب و راه اندازی JPA دستی و Spring-based، به "نصب و راه اندازی JPA" در زیر مراجعه کنید.
معماری ORM
ماندگاری داده ها در جاوا
از منظر برنامه نویسی، لایه ORM یک لایه آداپتور است: این زبان نمودارهای شی را با زبان SQL و جداول رابطه ای تطبیق میدهد. لایه ORM به توسعه دهندگان شی گرا اجازه میدهد تا نرم افزاری بسازند که بدون هیچ گونه ترک پارادایم شی گرا، داده ها را پایدار نگه دارد.
هنگامی که از JPA استفاده میکنید، یک نقشه از datastore به اشیا model مدل داده برنامه خود ایجاد میکنید. شما به جای تعریف نحوه ذخیره و بازیابی اشیا، نگاشت بین اشیا and و پایگاه داده خود را تعریف میکنید، سپس JPA را فرا میخوانید تا ادامه یابد. اگر از یک پایگاه داده رابطه ای استفاده میکنید، بسیاری از ارتباطات واقعی بین کد برنامه شما و پایگاه داده توسط JDBC، Java database Connection API انجام میشود.
به عنوان یک مشخصه، JPA حاشیه نویسی فراداده را ارائه میدهد، که برای تعریف نگاشت بین اشیا and و پایگاه داده از آنها استفاده میکنید. هر اجرای JPA موتور مخصوص خود را برای حاشیه نویسی JPA فراهم میکند. مشخصات JPA همچنین PersistenceManager یا EntityManager را فراهم میکند، که نقاط اصلی تماس با سیستم JPA هستند (در اینجا کد منطق کسب و کار شما به سیستم میگوید که با اشیا ma نقشه برداری شده چه کاری انجام دهد).
برای ملموس کردن همه این موارد، لیست 1 را در نظر بگیرید که یک کلاس داده ساده برای مدل سازی یک نوازنده است.
لیست 1. یک کلاس داده ساده در جاوا
public class Musician {
private Long id;
private String name;
private Instrument mainInstrument;
private ArrayList performances = new ArrayList<Performance>();
public Musician( Long id, String name){ * constructor setters... * }
public void setName(String name){
this.name = name;
}
public String getName(){
return this.name;
}
public void setMainInstrument(Instrument instr){
this.instrument = instr;
}
public Instrument getMainInstrument(){
return this.instrument;
}
...Other getters and setters...
}
کلاس Musician در لیست 1 برای نگهداری داده ها استفاده میشود. این میتواند شامل داده های ابتدایی مانند قسمت نام باشد. همچنین میتواند با کلاس های دیگر مانند main Instrument و اجرا ارتباط برقرار کند.دلیل وجود موسیقیدان، داشتن داده است. این نوع کلاس گاهی اوقات به عنوان DTO یا انتقال داده شناخته میشود. DTO از ویژگی های مشترک توسعه نرم افزار است. در حالی که آنها انواع مختلفی از داده ها را در اختیار دارند، اما هیچ منطق تجاری ندارند. دوام اشیا data داده ای یک چالش فراگیر در توسعه نرم افزار است.
حاشیه نویسی فراداده در JPA
جادوی موجود در لیست 3 نتیجه پیکربندی است که با استفاده از حاشیه نویسی JPA ایجاد میشود. توسعه دهندگان از حاشیه نویسی برای اطلاع دادن به JPA برای اینکه کدام یک از اشیا باید باقی بمانند و چگونه باید بقای آنها استفاده کنند استفاده میکنند.
لیست 4 کلاس نوازندگان را با یک حاشیه نویسی JPA نشان میدهد.
لیست 4. حاشیه نویسی Entity annotation@
@Entity
public class Musician { ..class body}
اشیا Pers ماندگار را گاه موجودی مینامند. پیوستن Entity به کلاسی مانند Musician به JPA اطلاع میدهد که این کلاس و اشیا آن باید ادامه یابد.
پیکربندی مبتنی بر حاشیه نویسی XML در مقابل
JPA همچنین از فایلهای خارجی XML به جای حاشیه نویسی برای تعریف فراداده های کلاس پشتیبانی میکند.
پیکربندی JPA
مانند اکثر چارچوبهای مدرن، JPA از برنامه نویسی طبق قرارداد استفاده میکند (همچنین به عنوان Convention over Configuration نیز شناخته میشود)، که در آن چارچوب پیکربندی پیش فرض را بر اساس بهترین روشهای صنعت فراهم میکند.
پیکربندی JPA
پیکربندی متداول صرفه جویی در زمان است و در بسیاری از موارد به اندازه کافی خوب کار میکند. همچنین امکان تنظیم پیکربندی JPA شما وجود دارد. به عنوان مثال، میتوانید از جدول حاوی table@ JPA برای تعیین جدولی که کلاس Musician باید در آن ذخیره شود استفاده کنید.
جایگاه JPA در برنامه های کاربردی
کلید اصلی
در JPA، کلید اصلی فیلدی است که برای شناسایی منحصر به فرد هر شی در پایگاه داده استفاده میشود. کلید اصلی برای ارجاع و ارتباط اشیا با موجودیت های دیگر مفید است. هر زمان که یک شی را در جدول ذخیره کنید، فیلدی را نیز تعیین میکنید که به عنوان کلید اصلی آن استفاده شود.
JPA از استراتژی های دیگر برای تولید کلید اصلی یک شی پشتیبانی میکند. همچنین حاوی حاشیه نویسی برای تغییر نام رشته های منفرد است. به طور کلی، JPA به اندازه کافی انعطاف پذیر است و میتواند با هر نقشه برداری پایداری که شما نیاز دارید سازگار باشد.
JPA چه کاربردی در زبان جاوا دارد؟
Java Persistence API (JPA) یکی از روشهای ممکن برای ORM است. از طریق JPA توسعه دهنده میتواند نقشه ها، ذخیره، به روز رسانی و بازیابی اطلاعات را از پایگاه داده های رابطه ای به اشیا جاوا و بالعکس انجام دهد. JPA میتواند در برنامه های Java-EE و Java-SE استفاده شود. JPA یک مشخصات است و چندین پیاده سازی در دسترس است.
دسترسی به پایگاه داده JPA
نتیجه
هر برنامه ای که با یک پایگاه داده سروکار دارد باید یک لایه برنامه را تعریف کند که تنها هدف آن جدا کردن کد ماندگاری است. Java Persistence API طیف وسیعی از قابلیت ها و پشتیبانی از ماندگاری شی جاوا را معرفی میکند. برنامه های ساده ممکن است به تمام قابلیت های JPA نیازی نداشته باشند، و در بعضی موارد سربار پیکربندی چارچوب شایسته نیست. با رشد یک برنامه کاربردی، ساختار و کپسول سازی JPA واقعاً باعث نگهداری آنها میشود. استفاده از JPA کد شی object شما را ساده نگه میدارد و یک چارچوب معمول برای دسترسی به داده ها در برنامه های جاوا را فراهم میکند.
بستن *نام و نام خانوادگی * پست الکترونیک * متن پیام |
دوره های آموزشی برنامه نویسی
انجام پروژه های برنامه نویسی
تدریس خصوصی برنامه نویسی
بیش از 7 سال از فعالیت جاواپرو میگذرد
جاواپرو دارای مجوز نشر دیجیتال از وزارت فرهنگ و ارشاد اسلامی است
جهت ارتباط مستقیم با جاواپرو در واتساپ و تلگرام :
09301904690