مشخصات مقاله
-
1091
-
0.0
-
3717
-
0
-
0
درس ششم : آموزش استفاده از annonation در Hibernate
درس ششم : آموزش استفاده از annonation در Hibernate
برنامه های Hibernate را می توان به همراه annotation ها نیز ایجاد کرد . همانطور که می دانید ، annotation یا به معنی فارسی " توضیحات متنی درباره داده " ، اطلاعاتی است که در لا به لای کدهای برنامه قرار داده می شوند . این کدها توضیحاتی را به نحوه عملکرد برنامه و روند اجرای آن ارایه می کنند که هم برای کاربر و هم برای کامپایلر جاوا قابل فهم است ، ولی انرژی برروی کدهای برنامه ندارد و در خروجی هم نمایش داده نمی شود .
Annotation هایی زیادی از جمله @Entity ، @Icl ، @Table و ... وجود دارد که از آنها می توانید در برنامه های Hibernate استفاده کنید .
Annotation ها در Hibernate برپایه JPA 2 تعریف شده اند و قابلیت های آن را دارا می باشند . کلید JPA Annotation ها در پکیج javax.persistence.* تعریف شده اند . Entity Manger در Hibernate ، رابط کاربری و Life cycle تعیین شده توسط JPA را اجرا و تولید می کند .
مهمترین فایده استفاده از annotation در Hibernate ، این است که دیگر نیازی ندارد تا فایل mapping ( hbm ) را برای برنامه ایجاد کنید . در اینجا Hibernate annotation برای تولید meta data به کار می رود .
مثال عملی ایجاد یک برنامه Hibernate به همراه Annotation :
برای ایجاد یک برنامه Hibernate به همراه annotation ، بایستی 4 مرحله زیر را انجام دهید :
- فایل های jar لازم جهت oracle ( اگر پایگاه داده برنامه oracle باشد ) و annotation را به برنامه اضافه کنید .
- کلاس Persistent Class را ایجاد نمایید .
- mapping ( آدرس دهی ) لازم را جهت کلاس Persistent در فایل تنظیمات Configuration برنامه ایجاد کنید .
- کلاس لازم جهت ایجاد و نگهداری Persistent را تعیین و ایجاد کنید .
در ادامه به تشریح کامل هر یک از مراحل فوق خواهیم پرداخت .
مرحله اول-اضافه کردن فایل های jar لازم برای oracle و annotation :
برای annotation هم بایستی فایل های زیر را به برنامه اضافه کنید :
- hibernate-commons-annotations.jar
- ejb3-persistence.jar
- hibernate-annotations.jar
مرحله دوم-آموزش ایجاد کلاس Persistent Class :
در این مرحله ، یک کلاس persistent همانند آنچه در مرحله قبل ایجاد کردیم ، به پروژه اضافه می کنیم . با این تفاوت که در کلاس برنامه جدید ، از annotation های استفاده می کنیم .
@Entity کلاس جاری را به عنوان یک Entity مشخص می کند .
@Table نام جدولی که قرار است اطلاعات Entity فوق در آن قرار بگیرد را تعیین می کند . اگر از @Table annotation استفاده نکنید ، برنامه به صورت پیش فرض ، نام کلاس را به عنوان نام جدول تعیین می کنید .
@Id ، شناسه ( Identifier ) لازم را جهت Entity تعیین می کند . @column ، اطلاعات لازم برای column هر property یا فیلد در برنامه را تعیین می کند . اگر از @column annotation استفاده نشود ، برنامه نام هر property را به صورت پیش فرض برای هر column آن در نظر می گیرد .
کد زیر ، محتویات فایل Employee.java را نشان داده که نحوه استفاده از annotation ها در آن مشخص شده است :
package com.javatpoint;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;
@Entity
@Table(name= "emp500")
public class Employee {
@Id
private int id;
private String firstName,lastName;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getFirstName() {
return firstName;
}
public void setFirstName(String firstName) {
this.firstName = firstName;
}
public String getLastName() {
return lastName;
}
public void setLastName(String lastName) {
this.lastName = lastName;
}
}
مرحله سوم-اضافه کردن mapping جهت کلاس Persistent در فایل Configuration :
فایل تنظیمات برنامه hibernate.cgf.xml را باز کرده و کد خط زیر را برای آدرس دهی ( mapping ) کلاس Persistent به آن اضافه کنید :
اکنون فایل تنظیمات Configuration به صورت زیر تغییر خواهد کرد :
create org.hibernate.dialect.Oracle9Dialect jdbc:oracle:thin:@localhost:1521:xe system oracle oracle.jdbc.driver.OracleDriver
مرحله چهارم-ایجاد کلاس لازم جهت تولید و نگهداری شی persistent object :
در این کلاس ، قصد داریم تا شی employee object را در پایگاه داده نگهداری کنیم . در این بخش ، از کلاس Annotation Configuration برای دریافت اطلاعات لازم جهت آدرس دهی ( mapping ) از کلاس Persistent استفاده می کنیم . همانند کد زیر :
package com.javatpoint.mypackage;
package com.javatpoint;
import org.hibernate.*;
import org.hibernate.cfg.*;
public class Test {
public static void main(String[] args) {
Session session=new AnnotationConfiguration()
.configure().buildSessionFactory().openSession();
Transaction t=session.beginTransaction();
Employee e1=new Employee();
e1.setId(1001);
e1.setFirstName("sonoo");
e1.setLastName("jaiswal");
Employee e2=new Employee();
e2.setId(1002);
e2.setFirstName("vimal");
e2.setLastName("jaiswal");
session.persist(e1);
session.persist(e2);
t.commit();
session.close();
System.out.println("successfully saved");
}
}