مدراء الكيانات جي بي آي JPA - Entity Managers
مدراء الكيانات جي بي آي JPA - Entity Managers
مدراء الكيانات جي بي آي JPA - Entity Managers
يأخذك هذا الفصل في مثال بسيط مع JPA. لننظر في إدارة الموظفين كمثال. وهذا يعني أن إدارة الموظفين تقوم بإنشاء وتحديث وإيجاد وحذف موظف. كما ذكر أعلاه ، نحن نستخدم قاعدة بيانات MySQL لعمليات قاعدة البيانات.
الوحدات الرئيسية لهذا المثال هي كما يلي:
نموذج أو POJO
Employee.java
Persistence سنتفق على تسميته بالاستمرار او الثبات.
Persistence.xml
خدمة Service
CreatingEmployee.java
UpdatingEmployee.java
FindingEmployee.java
DeletingEmployee.java
لنأخذ التسلسل الهرمي للحزمة التي استخدمناها في تثبيت JPA مع Eclipselink. اتبع التسلسل الهرمي لهذا المثال على النحو التالي:
إنشاء الكيانات
الكيانات ليست سوى حبوب أو نماذج ، في هذا المثال ، سنستخدم الموظف ككيان. العيد ، eid, ename, salary, deg هي سمات هذا الكيان. أنه يحتوي على منشئ الافتراضية ، وطريقة setter تلك السمات.
في التسلسل الهرمي الموضح أعلاه ، قم بإنشاء حزمة باسم "com.tutorialspoint.eclipselink.entity" ، ضمن حزمة "المصدر". قم بإنشاء فصل باسم Employee.java ضمن الحزمة المحددة كما يلي:
package com.tutorialspoint.eclipselink.entity; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; import javax.persistence.Table; @Entity @Table public class Employee { @Id @GeneratedValue(strategy = GenerationType.AUTO) private int eid; private String ename; private double salary; private String deg; public Employee(int eid, String ename, double salary, String deg) { super( ); this.eid = eid; this.ename = ename; this.salary = salary; this.deg = deg; } public Employee( ) { super(); } public int getEid( ) { return eid; } public void setEid(int eid) { this.eid = eid; } public String getEname( ) { return ename; } public void setEname(String ename) { this.ename = ename; } public double getSalary( ) { return salary; } public void setSalary(double salary) { this.salary = salary; } public String getDeg( ) { return deg; } public void setDeg(String deg) { this.deg = deg; } @Override public String toString() { return "Employee [eid=" + eid + ", ename=" + ename + ", salary=" + salary + ", deg=" + deg + "]"; } }
في التعليمة البرمجية أعلاه ، استخدمنا التعليق التوضيحيEntity لإنشاء فئة POJO ككيان.
قبل الانتقال إلى الوحدة التالية ، نحتاج إلى إنشاء قاعدة بيانات للكيان العلائقي ، والتي ستسجل قاعدة البيانات في ملف persistence.xml. افتح MySQL workbench واكتب الاستعلام كما يلي:
create database jpadb use jpadb
Persistence.xml
تلعب هذه الوحدة دورًا مهمًا في مفهوم JPA. في ملف xml هذا ، سنقوم بتسجيل قاعدة البيانات وتحديد فئة الكيان.
في التسلسل الهرمي للحزمة الموضح أعلاه ، يكون persistence.xml ضمن حزمة محتوى JPA كما يلي:
xml version="1.0" encoding="UTF-8"?>
version="2.0" xmlns="http://java.sun.com/xml/ns/persistence"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/persistence
http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd">
name="Eclipselink_JPA" transaction-type="RESOURCE_LOCAL">
com.devloper.eclipselink.entity.Employee
في xml أعلاه ، يتم تعريف العلامة باسم محدد لاستمرار JPA. تحدد العلامة فئة الكيان باسم الحزمة. تحدد العلامة جميع الخصائص ، وتعرف العلامة كل خاصية مثل تسجيل قاعدة البيانات ومواصفات عنوان URL واسم المستخدم وكلمة المرور. هذه هي خصائص Eclipselink. سيقوم هذا الملف بتكوين قاعدة البيانات.
عمليات الثبات persistence
تستخدم عمليات المثابرة مقابل قاعدة البيانات وهي عمليات التحميل والتخزين. في أحد مكونات الأعمال ، تندرج جميع عمليات الثبات persistence في فصول الخدمة.
في التسلسل الهرمي للحزمة الموضح أعلاه ، قم بإنشاء حزمة باسم "com.developer.eclipselink.service" ، ضمن حزمة 'src' (المصدر). جميع فئات الخدمة المسماة CreateEmloyee.java و UpdateEmployee.java و FindEmployee.java و DeleteEmployee.java. يأتي ضمن الحزمة المعطاة كما يلي:
إنشاء موظف
إنشاء فئة الموظف المسمى CreateEmployee.java كما يلي:
package com.tutorialspoint.eclipselink.service; import javax.persistence.EntityManager; import javax.persistence.EntityManagerFactory; import javax.persistence.Persistence; import com.tutorialspoint.eclipselink.entity.Employee; public class CreateEmployee { public static void main( String[ ] args ) { EntityManagerFactory emfactory = Persistence.createEntityManagerFactory( "Eclipselink_JPA" ); EntityManager entitymanager = emfactory.createEntityManager( ); entitymanager.getTransaction( ).begin( ); Employee employee = new Employee( ); employee.setEid( 1201 ); employee.setEname( "Gopal" ); employee.setSalary( 40000 ); employee.setDeg( "Technical Manager" ); entitymanager.persist( employee ); entitymanager.getTransaction( ).commit( ); entitymanager.close( ); emfactory.close( ); } }
في التعليمة البرمجية أعلاه ، ينشئ createEntityManagerFactory () وحدة استمرارية من خلال توفير نفس الاسم الفريد الذي نوفره لوحدة الثبات في ملف persistent.xml. سينشئ كائن الكيانmanagerfactory مثيل الكيان باستخدام طريقة createEntityManager (). ينشئ كائن مدير الكيان مثيل معاملة كيان لإدارة المعاملة. باستخدام كائن مدير الكيان ، يمكننا استمرار الكيانات في قاعدة البيانات.
بعد تجميع وتنفيذ البرنامج أعلاه ، سوف تحصل على إشعارات من مكتبة eclipselink على لوحة وحدة التحكم من eclipse IDE.
للنتيجة ، افتح منضدة عمل MySQL واكتب الاستعلامات التالية.
use jpadb select * from employee
سيتم عرض جدول قاعدة البيانات المؤثر باسم الموظف employee بتنسيق جدولي كما يلي:
Eid | Ename | Salary | Deg |
---|---|---|---|
1201 | Gopal | 40000 | Technical Manager |
Update Employee تحديث الموظف
لتحديث الموظف ، نحتاج إلى الحصول على قاعدة بيانات نموذج السجل وإجراء التغييرات والالتزام بها أخيرًا. يتم عرض الفئة المسماة UpdateEmployee.java على النحو التالي
package com.tutorialspoint.eclipselink.service; import javax.persistence.EntityManager; import javax.persistence.EntityManagerFactory; import javax.persistence.Persistence; import com.tutorialspoint.eclipselink.entity.Employee; public class UpdateEmployee { public static void main( String[ ] args ) { EntityManagerFactory emfactory = Persistence.createEntityManagerFactory( "Eclipselink_JPA" ); EntityManager entitymanager = emfactory.createEntityManager( ); entitymanager.getTransaction( ).begin( ); Employee employee = entitymanager.find( Employee.class, 1201 ); //before update System.out.println( employee ); employee.setSalary( 46000 ); entitymanager.getTransaction( ).commit( ); //after update System.out.println( employee ); entitymanager.close(); emfactory.close(); } }
بعد تجميع وتنفيذ البرنامج أعلاه ، سوف تحصل على إشعارات من مكتبة Eclipselink على لوحة وحدة التحكم من eclipse IDE.
للنتيجة ، افتح منضدة عمل MySQL واكتب الاستعلامات التالية.
use jpadb select * from employee
سيتم عرض جدول قاعدة البيانات المؤثر باسم الموظف بتنسيق جدولي كما يلي:
Eid | Ename | Salary | Deg |
---|---|---|---|
1201 | Gopal | 46000 | Technical Manager |
تم تحديث راتب الموظف ، 1201 إلى 46000.
Find Employee البحث عن موظف
للعثور على موظف ، سنحصل على سجل من قاعدة البيانات ونعرضه. في هذه العملية ، لا تشارك EntityTransaction ، ولا يتم تطبيق أي معاملة أثناء استرداد السجل.
الفئة المسماة FindEmployee.java كما يلي.
package com.tutorialspoint.eclipselink.service; import javax.persistence.EntityManager; import javax.persistence.EntityManagerFactory; import javax.persistence.Persistence; import com.tutorialspoint.eclipselink.entity.Employee; public class FindEmployee { public static void main( String[ ] args ) { EntityManagerFactory emfactory = Persistence.createEntityManagerFactory( "Eclipselink_JPA" ); EntityManager entitymanager = emfactory.createEntityManager(); Employee employee = entitymanager.find( Employee.class, 1201 ); System.out.println("employee ID = " + employee.getEid( )); System.out.println("employee NAME = " + employee.getEname( )); System.out.println("employee SALARY = " + employee.getSalary( )); System.out.println("employee DESIGNATION = " + employee.getDeg( )); } }
بعد تجميع وتنفيذ البرنامج أعلاه ، ستحصل على الإخراج من مكتبة Eclipselink على لوحة التحكم في eclipse IDE كما يلي:
employee ID = 1201 employee NAME = Gopal employee SALARY = 46000.0 employee DESIGNATION = Technical Manager
Delete Employee حذف الموظف
لحذف موظف ، سنجد أولاً السجل ثم نحذفه. هنا EntityTransaction تلعب دورا هاما.
الفئة المسماة DeleteEmployee.java كما يلي:
package com.tutorialspoint.eclipselink.service; import javax.persistence.EntityManager; import javax.persistence.EntityManagerFactory; import javax.persistence.Persistence; import com.tutorialspoint.eclipselink.entity.Employee; public class DeleteEmployee { public static void main( String[ ] args ) { EntityManagerFactory emfactory = Persistence.createEntityManagerFactory( "Eclipselink_JPA" ); EntityManager entitymanager = emfactory.createEntityManager( ); entitymanager.getTransaction( ).begin( ); Employee employee = entitymanager.find( Employee.class, 1201 ); entitymanager.remove( employee ); entitymanager.getTransaction( ).commit( ); entitymanager.close( ); emfactory.close( ); } }
بعد تجميع وتنفيذ البرنامج أعلاه ، سوف تحصل على إشعارات من مكتبة Eclipselink على لوحة وحدة التحكم من eclipse IDE.
للنتيجة ، افتح منضدة عمل MySQL واكتب الاستعلامات التالية.
use jpadb select * from employee
سيكون لدى قاعدة البيانات المرسلة باسم الموظف سجلات فارغة.
بعد الانتهاء من جميع الوحدات في هذا المثال ، يتم عرض التسلسل الهرمي للملفات والملفات كما يلي:
التسميات: JPA
<< الصفحة الرئيسية