مشخصات مقاله
-
1006
-
0.0
-
2613
-
0
-
0
درس 27 : آموزش آدرس دهی Many to Many Mapping در Hibernate
آموزش آدرس دهی Many to Many Mapping در Hibernate با مثال map و استفاده از فایل xml :
شما می توانید ارتباط many to many را با استفاده از المنت های set، bag، map و غیره انجام دهید. در این درس قصد داریم تا از المنت map برای آدرس دهی many to many استفاده کنیم. در این حالت، 3 جدول ایجاد خواهد شد که به بررسی آن ها خواهیم پرداخت.
مثال عملی آموزش آدرس دهی Many to Many در Hibernate :
برای اجرای مثال نیاز دارید تا صفحه های زیر را در پروژه خود اضافه کنید :
- Question.java
- User.java
- question.hbm.xml
- User.hbm.xml
- hibernate.cfg.xml
- StoreTest.java
- FetchTest.java
کد هر یک از فایل های فوق به صورت زیر خواهد بود :
فایل Question.java
package com.javatpoint;
import java.util.Map;
public class Question {
private int id;
private String name;
private Map answers;
public Question() {}
public Question(String name, Map answers) {
super();
this.name = name;
this.answers = answers;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Map getAnswers() {
return answers;
}
public void setAnswers(Map answers) {
this.answers = answers;
}
}
فایل User.java
package com.javatpoint;
public class User {
private int id;
private String username,email,country;
public User() {}
public User(String username, String email, String country) {
super();
this.username = username;
this.email = email;
this.country = country;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getCountry() {
return country;
}
public void setCountry(String country) {
this.country = country;
}
}
فایل question.hbm.xml
فایل User.hbm.xml
فایل hibernate.cfg.xml
update org.hibernate.dialect.Oracle9Dialect jdbc:oracle:thin:@localhost:1521:xe system oracle oracle.jdbc.driver.OracleDriver
فایل StoreTest.java
package com.javatpoint;
import java.util.HashMap;
import org.hibernate.*;
import org.hibernate.cfg.*;
public class StoreTest {
public static void main(String[] args) {
Session session=new Configuration().configure().buildSessionFactory().openSession();
Transaction tx=session.beginTransaction();
HashMap map1=new HashMap();
map1.put("java is a programming language",
new User("John Milton","john@gmail.com","usa"));
map1.put("java is a platform",
new User("Ashok Kumar","ashok@gmail.com","india"));
HashMap map2=new HashMap();
map2.put("servlet technology is a server side programming",
new User("John Milton","john@gmail.com","usa"));
map2.put("Servlet is an Interface",
new User("Ashok Kumar","ashok@gmail.com","india"));
Question question1=new Question("What is java?",map1);
Question question2=new Question("What is servlet?",map2);
session.persist(question1);
session.persist(question2);
tx.commit();
session.close();
System.out.println("successfully stored");
}
}
فایل FetchTest.java
package com.javatpoint;
import java.util.*;
import org.hibernate.*;
import org.hibernate.cfg.*;
public class FetchTest {
public static void main(String[] args) {
Session session=new Configuration().configure().buildSessionFactory().openSession();
Query query=session.createQuery("from Question ");
List list=query.list();
Iterator iterator=list.iterator();
while(iterator.hasNext()){
Question question=iterator.next();
System.out.println("question id:"+question.getId());
System.out.println("question name:"+question.getName());
System.out.println("answers.....");
Map map=question.getAnswers();
Set<>> set=map.entrySet();
Iterator<>> iteratoranswer=set.iterator();
while(iteratoranswer.hasNext()){
Map.Entry entry=(Map.Entry)iteratoranswer.next();
System.out.println("answer name:"+entry.getKey());
System.out.println("answer posted by.........");
User user=entry.getValue();
System.out.println("username:"+user.getUsername());
System.out.println("user emailid:"+user.getEmail());
System.out.println("user country:"+user.getCountry());
}
}
session.close();
}
}