第一步:创建数据库 users表和email表(注意:在MySQL数据库中,user是关键字),关联关系是:一个用户可能有多个email地址。email中有一个关联users表的外键userId。
--------------------------------------------------------------------------------------------------
package com.entity;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import org.hibernate.Session;
import org.hibernate.Transaction;
import com.util.HibernateSessionFactory;
public class HibernateSetTest {
public static void main(String[] args) {
HibernateSetTest test = new HibernateSetTest();
//test.add();
//test.get();
//test.update();
test.delete();
}
public void add(){
Session session = HibernateSessionFactory.getSessionFactory().getCurrentSession();
Transaction tx = session.beginTransaction();
Users user = new Users();
user.setUsername("ykk");
user.setPassword("123");
Set<String> emails = new HashSet<String>();
emails.add("111@126.com");
emails.add("ykk@163.com");
user.setEmails(emails);
session.save(user);
tx.commit();
}
public void get(){
Session session = HibernateSessionFactory.getSessionFactory().getCurrentSession();
Transaction tx = session.beginTransaction();
Users users = (Users) session.get(Users.class, 2);
tx.commit();
Set<String> set = users.getEmails();
System.out.println(users.getUsername());
for(String str:set){
System.out.println("email地址:"+str);
}
}
public void update(){
Session session = HibernateSessionFactory.getSessionFactory().getCurrentSession();
Transaction tx = session.beginTransaction();
Users users = (Users) session.get(Users.class, 2);
users.setUsername("lll");
users.setPassword("lllll");
Set<String> set = users.getEmails();
set.add("lll@126.com");
set.add("kkk@126.com");
List<String> list = new ArrayList<String>();
list.addAll(set);
set.remove(list.get(0));
tx.commit();
}
public void delete(){
Session session = HibernateSessionFactory.getSessionFactory().getCurrentSession();
Transaction tx = session.beginTransaction();
Users users = (Users) session.get(Users.class, 2);
session.delete(users);
tx.commit();
}
}