Hibernate – הבדלי גרסאות

מתוך ויקיפדיה, האנציקלופדיה החופשית
תוכן שנמחק תוכן שנוסף
Mnsn (שיחה | תרומות)
אין תקציר עריכה
Mnsn (שיחה | תרומות)
הוספת דוגמא על מנת שידעו איך לעבוד אם היברנט ויבנו את הפשטות שלו
שורה 67: שורה 67:
seesion.save(s);
seesion.save(s);
tx.commit();
tx.commit();
session.close();
</source>
</source>
וזהו יצרנו טבלה ושמרנו לה שורה במסד נתונים בעזרת הייברנט
וזהו יצרנו טבלה ושמרנו לה שורה במסד נתונים בעזרת הייברנט

גרסה מ־00:03, 2 בנובמבר 2012

הלוגו של Hibernate

Hibernate (הייברנייט) היא ספריית Java למיפוי אובייקטי-רלציוני (object-relational mapping - ORM), המספקת תשתית למיפוי (התאמה) בין מודל התכנות מונחה-עצמים, לבין בסיסי נתונים יחסיים מסורתיים. כאשר כותבים קוד העוסק בשימור נתונים (persistence), הייברנייט פותרת את בעיות חוסר ההתאמה בין מודל האובייקטים (תכנות מונחה-עצמים) למודל הרלציוני (בסיסי נתונים המורכבים מטבלאות), באמצעות החלפת הגישה הישירה לבסיס הנתונים, בשימוש בפונקציות high-level המטפלות באובייקטים. באנגלית, השם הכולל לקבוצת הבעיות הנובעות מחוסר ההתאמה בין מודל האובייקטים למודל הרלציוני הוא The object-relational impedance mismatch.

השירות המרכזי ש-Hibernate מספקת הוא מיפוי בין מחלקות Java לטבלאות של בסיסי נתונים (ומיפוי בין טיפוסי הנתונים של Java לטיפוסי נתונים של SQL). כמו כן, Hibernate מספקת אמצעים לביצוע שאילתות ואחזור נתונים, והיא יודעת ליצור את קריאות ה-SQL בעצמה. Hibernate מנסה להקל על עבודת המתכנת בכך שהיא חוסכת ממנו את הצורך בטיפול ידני ב-result sets (המידע המוחזר מביצוע שאילתה על בסיס נתונים), וביצוע המרות בין אובייקטים. השימוש ב-Hibernate מאפשר ליישום להיות פורטבילי (יביל) בין כל בסיסי הנתונים מבוססי SQL הנתמכים על ידי הספרייה, תוך תקורת ביצועים לא גבוהה.

Hibernate היא תוכנה חופשית המופצת תחת הרישיון הציבורי הכללי המוקטן של גנו.

דוגמת שימוש אם annotation

בתחילה נוריד את היברנט מהאתר המוזכר למטה ונייבא את התיקייה בשם required לפרויקט שלנו מומלץ ליצור ספרייה בJAVA של HIBERNET שניתן יהיה לייבא בקלות לאחר שייבאנו נתחיל בדוגמא נניח ברצוננו ליצור טבלה של סטודנטים כך שערכיו הם: ת"ז שהוא מפתח ראשי ושם ניצור אובייקט JAVA שיראה כך :

@entity
TABEL(name=student)
public class Student {
     String id;
     String Name;
     @ID
     @column(name="ID)
     public String getId(){
          return id;
     }
     public void setID(String id){
          this.id=id;
     }
     @column(name="NAME")
     public String getName(){ return this.name;}
     public void setName(String name){this.name=name;}
{

לאחר מכן נאלץ ליצור קובץ בשם hibernate.cfg.xml שיראה כך:

<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD//EN"
"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">

<hibernate-configuration>
<session-factory>
<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>        הדרייבר של הדטה בייס שנשתמש במקרה זה MYSQL
<property name="hibernate.connection.url">jdbc:mysql://localhost:3306/DBNAME</property>    כאשר מכניסים את כתובת המחשב אליו נרצה להתחבר והדטה בייס שלו
<property name="hibernate.connection.username">root</property>                             שם משתמש של המסד
<property name="hibernate.connection.password">PASSWORD</property>                         סיסמא למסד
<property name="hibernate.connection.pool_size">10</property>                               גודל בריכת החיבורים
<property name="show_sql">true</property>                                             האם לראות את השאילתות בקונסול
<property name="dialect">org.hibernate.dialect.MySQLDialect</property>
<property name="hibernate.current_session_context_class">thread</property>
<property name="hibernate.hbm2ddl.auto">update</property>                                זה אומר שאם הטבלה קיימת צור אותה
<mapping class="dbLayer.tables.Student" />                                            ערך זה מודיע להייברנט שייצרנו מחלקה שאנו רוצים שתיהיה טבלה ששמה STUDENT

</session-factory>
</hibernate-configuration>

לאחר מכן נקרא ניצור אובייקט ונשמורו לsession כך שתיווצר טבלה ותשמר למסד (בצורה הבאה)

Configuration config=new Configuration().addAnnotatedClass(Student.class).configure();
ServiceRegistry serviceRegistry=new ServiceRegistryBuilder().applySettings(config.getProperties()).buildServiceRegistry();
session s=new org.hibernate.cfg.Configuration().configure().buildSessionFactory(serviceRegistry).openSession();
Transaction tx=session.beginTransaction();
Student s=new Student();
s,setId(3);
s.setName(Asaf);
seesion.save(s);
tx.commit();
session.close();

וזהו יצרנו טבלה ושמרנו לה שורה במסד נתונים בעזרת הייברנט

קישורים חיצוניים


ערך זה הוא קצרמר בנושא מחשבים. אתם מוזמנים לתרום לוויקיפדיה ולהרחיב אותו.