打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
Hibernate集合映射--set集合(二)
Hibernate中set集合的使用

案例:定义一个代表用户的User类,User类中,使用set集合保存用户的多个email地址

第一步:创建数据库 users表和email表(注意:在MySQL数据库中,user是关键字),关联关系是:一个用户可能有多个email地址。email中有一个关联users表的外键userId。

 
 
第二步:为项目添加Hibernate支持
第三步:通过Hibernate逆向工程将Users表逆向生成类和映射文件
 

第四步:修改Users.java类
 
 
第五步:修改Users.hbm.xml文件
 
 
第六步:编写测试类及方法
 
 
这样就完成了为用户添加多个email的方法

--------------------------------------------------------------------------------------------------
使用Hibernate的set集合映射的增删改查方法

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();
}

}



本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
HQL和SQL的区别
Hibernate中对增删改查的小结
在Hibernate中实现复杂的数据映射
Hibernate学习笔记
hibernate学习系列SET集合
Hibernate
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服