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

درس بیستم : آموزش آدرس دهی المنت List در آدرس دهی مجموعه ها

آموزش آدرس دهی المنت List در آدرس دهی مجموعه ها :

اگر کلاس خام و اصلی برنامه (Persistant Class)، حاوی شی List object باشد، به سادگی می توانید شی List را به وسیله المنت کلاس در فایل mapping و یا annotation آدرس دهی کنید.
در این درس، ما از سناریوی 1 یا Forum استفاده می کنیم که در آن هر سوال می تواند دارای چندین جواب باشد. شکل زیر بیان کننده مفهوم مسئله است :

آموزش آدرس دهی المنت List در آدرس دهی مجموعه ها

به وسیله کد زیر، می توانیم شی List را در فایل mapping تعریف و تنظیم کنیم :

  
  
       ...        
            
            
            
            
            
            
       ...  
  
            

مثال عملی آموزش آدرس دهی المنت List در مجموعه ها :

در این مثال عملی، قصد داریم تا نحوه آدرس دهی مجموعه ها را با المنت list به طور کامل آموزش دهیم. در این مثال، المنت List مجموعه ای از مقادیر متنی String Values را نگهداری می کند نه رفرنس ها به موجودیت ها. به همین دلیل از روش element به جای one-to-many برای عنصر list استفاده می کنیم.

1)ایجاد کلاس اصلی و خام برنامه Persistent Class :
کلاس اصلی Persistent Class، کلید خواص Class از جمله خاصیت List را تعیین می کند. به صورت زیر :

 
package com.javatpoint;  
  
import java.util.List;  
  
public class Question {  
private int id;  
private String qname;  
private List answers;  
  
//getters and setters  
  
}     

2)ایجاد فایل آدرس دهی mapping file برای کلاس Persistent :
در کد زیر، محتویات فایل question.hbm.xml را برای تعریف شی List قرار داده ایم :

  
  
  
  
  
   
     
       
     
     
            
     
       
       
       
     
            
   
            

            

3)ایجاد فایل تنظیمات برنامه Configuration file :
فایل زیر که فایل تنظیمات برنامه است، شامل اطلاعاتی راجع به پایگاه داده و فایل آدرس دهی mapping file است.

 
  
  
  
  
  
  
      
        update  
        org.hibernate.dialect.Oracle9Dialect  
        jdbc:oracle:thin:@localhost:1521:xe  
        system  
        oracle  
        oracle.jdbc.driver.OracleDriver  
      
      
  
  
            

4)ایجاد کلاس لازم جهت نگهداری اطلاعات :
در کلاس زیر، اطلاعات مربوط به کلاس question را نگهداری می کنیم :

  
package com.javatpoint;  
  
import java.util.ArrayList;  
  
import org.hibernate.*;  
import org.hibernate.cfg.*;  
  
public class StoreData {  
 public static void main(String[] args) {  
    Session session=new Configuration().configure("hibernate.cfg.xml")  
                        .buildSessionFactory().openSession();  
    Transaction t=session.beginTransaction();  
      
    ArrayList list1=new ArrayList();  
    list1.add("java is a programming language");  
    list1.add("java is a platform");  
      
    ArrayList list2=new ArrayList();  
    list2.add("Servlet is an Interface");  
    list2.add("Servlet is an API");  
      
    Question question1=new Question();  
    question1.setQname("What is Java?");  
    question1.setAnswers(list1);  
      
    Question question2=new Question();  
    question2.setQname("What is Servlet?");  
    question2.setAnswers(list2);  
      
    session.persist(question1);  
    session.persist(question2);  
      
    t.commit();  
    session.close();  
    System.out.println("success");  
 }  
}
            

5)آموزش نحوه دریافت اطلاعات از شی List :
در کد زیر، ما از زبان HQL برای خواندن کلید رکوردهای کلاس Question از جمله answers استفاده کرده ایم. در این روش، برنامه اطلاعات رکوردها را از دو جدول که دارای عملکردی مستقل هستند، می خواند :

package com.javatpoint;  
  
import java.util.*;  
  
import org.hibernate.*;  
import org.hibernate.cfg.*;  
  
public class FetchData {  
public static void main(String[] args) {  
      
    Session session=new Configuration().configure("hibernate.cfg.xml")  
                        .buildSessionFactory().openSession();  
      
    Query query=session.createQuery("from Question");  
    List list=query.list();  
      
    Iterator itr=list.iterator();  
    while(itr.hasNext()){  
        Question q=itr.next();  
        System.out.println("Question Name: "+q.getQname());  
          
        //printing answers  
        List list2=q.getAnswers();  
        Iterator itr2=list2.iterator();  
        while(itr2.hasNext()){  
            System.out.println(itr2.next());  
        }  
          
    }  
    session.close();  
    System.out.println("success");  
      
}  
} 
            

خروجی مثال هم به صورت زیر خواهد بود : 

آموزش آدرس دهی المنت List در آدرس دهی مجموعه ها

1395/06/31 2465 1030
رمز عبور : tahlildadeh.com یا www.tahlildadeh.com
نظرات شما

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