کانال بله, جهت پشتیبانی و اطلاع رسانی کانال بله, جهت پشتیبانی و اطلاع رسانی
عضویت

درس 40 : آموزش ادغام برنامه های Spring و Hibernate

آموزش ادغام برنامه های Spring و Hibernate

شما به سادگی می توانید برنامه های Spring و Hibernate را با هم ادغام کنید.
در چهارچوب کاری Hibernate کلیه اطلاعات لازم جهت پایگاه داده را در فایل Hibernate.cfg.xml تعیین می کنیم.
اما اگر بخواهیم یک برنامه Hibernate را با یک برنامه Spring ادغام کنیم، دیگر نیازی به ایجاد فایل hibernate.cfg.xml نیست. می توانیم کلیه اطلاعات مورد نیاز را در فایل applicationContext.xml قرار بدهیم.

مزایای استفاده چهارچوب کاری Spring با Hibernate :

چهارچوب کاری Spring، کلاس HibernateTemplate را فراهم کرده است. به همین دلیل دیگر نیاز نیست مراحل مختلفی مثل ایجاد فایل تنظیمات Configuration file، ساخت فایل BulidSessionFactory ، ایجاد session، انجام شروع و پایان تراکنش ها begin and commit transaction را انجام دهیم.
بنابراین استفاده چهارچوب کاری Spring در Hibernate به طور قابل ملاحظه ای حجم کد برنامه را کاهش می دهد.

درک مشکل عدم استفاده از Spring با Hibernate :

بیایید این مسئله را با بررسی کد فایل hibernate بهتر درک کنیم :

 
//creating configuration  
Configuration cfg=new Configuration();    
cfg.configure("hibernate.cfg.xml");    
    
//creating seession factory object    
SessionFactory factory=cfg.buildSessionFactory();    
    
//creating session object    
Session session=factory.openSession();    
    
//creating transaction object    
Transaction t=session.beginTransaction();    
        
Employee e1=new Employee(111,"arun",40000);    
session.persist(e1);//persisting the object    
    
t.commit();//transaction is commited    
session.close();   
            

همان طور که در کد فایل Hibernate فوق مشاهده می کنیم، در Hibernate بایستی مراحل زیادی را انجام دهید.
اما راه حل، استفاده از کلاس HibernateTemplate به وسیله چهارچوب کاری Spring است .
در این حالت، نیاز نیست مراحل زیادی را طی کنید. فقط کافی است کد زیر را بنویسید :

 
Employee e1=new Employee(111,"arun",40000);    
hibernateTemplate.save(e1);  
            

آموزش متدهای پرکاربرد کلاس HibernateTemplate :

  1. متد Void Persistent (object entity) : این متد object داده شده به ان را در برنامه نگهداری می کند.
  2. متد Serializable save (object entity) : این متد object داده شده به آن را نگهداری کرده و id شی را بر می گرداند.
  3. متد Void save OrUpdate(object entity) : این متد object داده شده را نگهداری یا به روزرسانی Update می کند. اگر id شی پیدا شد، متد رکورد آن را به روز یا Update می کند، در غیر این صورت رکورد را ذخیره می کند.
  4. متد Void update (object entity) : این متد شی داده شده را به روز یا Update می کند.
  5. متد Void delete(object entity) : این متد object داده شده را بر حسب id آن حذف یا delete می کند.
  6. متد Object get (Class entity Class, Ser ializable id) : این متد شی Persistent object را بر حسب id داده شده بر می گرداند.
  7. متد Object load (Class entityClass,Serializable id) : این متد شی Persistent object را بر حسب id داده شده، لود یا اجرا می کند.
  8. متد List loadAll (Class entityclass) : این متد کلیه شی های Persistent Object را بر می گرداند.

مراحل کار :

در این بخش مراحل مختلف نحوه ادغام برنامه های Hibernate و Spring را نشان داده ایم :

  1. ایجاد جدول در پایگاه داده، که این مرحله اختیاری است.
  2. ایجاد فایل applicationContext.xml، که این فایل دربرگیرنده اطلاعات لازم درباره DataSource، SessionFactory و ... می باشد.
  3. ایجاد فایل Employee.java که این فایل کلاس Persistent Class را تعیین می کند.
  4. ایجاد فایل employee.xml که این فایل نیز فایل آدرس دهی mapping file را تعیین می کند.
  5. ایجاد فایل EmployeeDao.java، که این فایل کلاس dao class ای که از Hibernate Template استفاده می کند را تعیین می کند.
  6. ایجاد فایل InsertTest.java که این فایل متدهای لازم کلاس EmployeeDao Class را فراخوانی می کند.

مثال عملی آموزش ادغام برنامه های Spring و Hibernate :

در این مثال عملی، قصد داریم تا روش ادغام برنامه های Hibernate و Spring را آموزش دهیم.
تصویر زیر، کلیه فایل ها و پوشه های مثال Spring و Hibernate را نشان می دهد :

spring hibernate example with directory structure

1)ایجاد جدول در پایگاه داده :
در این مثال ما از Oracle برای ایجاد پایگاه داده استفاده کرده ایم، اما شما می توانید از سایر پایگاه های داده دیگر نیز استفاده کنید. به وسیله کد زیر، جدول مورد نظر خود را در پایگاه داده ایجاد می کنیم :

CREATE TABLE  "EMP558"   
   (    "ID" NUMBER(10,0) NOT NULL ENABLE,   
    "NAME" VARCHAR2(255 CHAR),   
    "SALARY" FLOAT(126),   
     PRIMARY KEY ("ID") ENABLE  
   )  
/  
            

2)فایل Employee.java :
این فایل یک کلاس ساده PoJo Class است که به عنوان کلاس Persistent Class برای hibernate کار می کند :

package com.javatpoint;  
  
public class Employee {  
private int id;  
private String name;  
private float salary;  
  
//getters and setters  
  
}  
            

3)فایل employee.hbm.xml :
این فایل یک فایل آدرس دهی mapping file بوده که حاوی یک اطلاعات لازم جهت کلاس Persistent Class است :

 
  
  
  
  
  
            
            
            
            
            
            
  
            
 
            

4)فایل EmployeeDao.java :
فایل EmployeeDao.java یک کلاس java class بوده که از متدهای کلاس Hibernate Template برای ایجاد شی یا object کلاس Employee Class استفاده می کند :

 
package com.javatpoint;  
import org.springframework.orm.hibernate3.HibernateTemplate;  
import java.util.*;  
public class EmployeeDao {  
HibernateTemplate template;  
public void setTemplate(HibernateTemplate template) {  
    this.template = template;  
}  
//method to save employee  
public void saveEmployee(Employee e){  
    template.save(e);  
}  
//method to update employee  
public void updateEmployee(Employee e){  
    template.update(e);  
}  
//method to delete employee  
public void deleteEmployee(Employee e){  
    template.delete(e);  
}  
//method to return one employee of given id  
public Employee getById(int id){  
    Employee e=(Employee)template.get(Employee.class,id);  
    return e;  
}  
//method to return all employees  
public List getEmployees(){  
    List list=new ArrayList();  
    list=template.loadAll(Employee.class);  
    return list;  
}  
}  
            

5)فایل application Context.xml :
در فایل applicationContext.xml، کلیه اطلاعات لازم جهت پایگاه داده را در شی BasicDataSource Object فراهم کرده ایم. این فایل در شی کلاس LocalSession Factory Bean استفاده شده و حاوی اطلاعات دیگری از جمله mappingResource و hibernateProperties می باشد.
شی LocalSession Factory Bean در کلاس Hibernate Template Class استفاده می شود. شکل زیر ساختار کد لازم جهت ایجاد فایل applicationContext.xml را نشان می دهد :

موزش متدهای پرکاربرد کلاس HibernateTemplate

 
  
  
  
  
      
          
          
          
          
      
      
      
          
          
          
          
        employee.hbm.xml  
          
          
          
          
              
                org.hibernate.dialect.Oracle9Dialect  
                update  
                true  
                  
              
          
      
      
      
      
      
      
      
      
      
      
      
      
            

6)فایل Insert Test.java :
این کلاس از شی EmployeeDao class object استفاده کرده و با پاس دادن شی Employee Class object متد saveEmployee را فراخوانی می کند.

package com.javatpoint;  
  
import org.springframework.beans.factory.BeanFactory;  
import org.springframework.beans.factory.xml.XmlBeanFactory;  
import org.springframework.core.io.ClassPathResource;  
import org.springframework.core.io.Resource;  
  
public class InsertTest {  
public static void main(String[] args) {  
      
    Resource r=new ClassPathResource("applicationContext.xml");  
    BeanFactory factory=new XmlBeanFactory(r);  
      
    EmployeeDao dao=(EmployeeDao)factory.getBean("d");  
      
    Employee e=new Employee();  
    e.setId(114);  
    e.setName("varun");  
    e.setSalary(50000);  
      
    dao.saveEmployee(e);  
      
}  
}  
            

اکنون اگر به جدول ایجاد شده در پایگاه داده Cracle مثال دقت کنید، خواهید دید که رکورد جدید به جدول اضافه شده است.

آموزش فعال کردن قابلیت ایجاد خودکار جدول ها (table creation) ، نشان دادن queryهای SQL و ... :

شما می توانید خیلی از خواص hibernate Properties مثل ایجاد خودکار جدول (automatic table Creation) را به وسیله فایل hbm2ddl.auto در فایل applicationContext.xml فعال کنید. کد آن به صورت زیر است :

 
  
              
                org.hibernate.dialect.Oracle9Dialect  
                update  
                true  
                  
  
            

اگر کد فوق را به برنامه خود اضافه کنید، دیگر نیازی ندارید تا جدول پایگاه داده را به صورت دستی ایجاد نمایید. زیرا برنامه جدول را به صورت اتوماتیک ایجاد می کند.

1395/07/13 2864 980
رمز عبور : tahlildadeh.com یا www.tahlildadeh.com
نظرات شما

نظرات خود را ثبت کنید...