hibernate多表操作

1. 多表操作—插入操作

    @Test
	public void test1() {
		
		Session session = HibernateUtil.getSession();
		
		session.beginTransaction();
		
		//操作
		//1.创建2个学生
		
		Student s1 = new Student();
		s1.setName("zhangsan");

		Student s2 = new Student();
		s2.setName("wangwu");		
		//2. 创建2门课

		Course c1 = new Course();
		c1.setCname("deep learning");
		
		Course c2 = new Course();
		c2.setCname("java ee");
		
		//科目来关联学生
		
		c1.getStudents().add(s1);
		c1.getStudents().add(s2);
		
		c2.getStudents().add(s1);
		c2.getStudents().add(s2);
		
		//保存
		
		session.save(s1);
		session.save(s2);
		
		session.save(c1);
		session.save(c2);
		
		session.getTransaction().commit();
		
		session.close();	
	}

2. 多表操作—删除操作

    //删除中间表的数据,删除id=5这个人所选的id=6的课
	@Test
	public void test2() {
		
		Session session = HibernateUtil.getSession();
		
		session.beginTransaction();
		
		//1. 获取id=3的学生
		
		Student s = session.get(Student.class, 5);
		
		//2。获取id=4的课
		
		Course c = session.get(Course.class, 6);
		
		//3.解除关系
		
//		s.getCourses().remove(c);
		
		c.getStudents().remove(s);
		session.getTransaction().commit();
		
		session.close();	
	}

3. 多表操作—更新操作

        //更新中间表,修改id=5 选的id=5 这门课修改为id=6这个课
		@Test
		public void test3() {
			Session session = HibernateUtil.getSession();
			
			session.beginTransaction();
			
			//1. 获取id=5的学生
			
			Student s = session.get(Student.class, 5); 
			
			//2。获取id=5、6的课
			
			Course c1 = session.get(Course.class, 5);//修改前的课
			Course c2= session.get(Course.class, 6);//修改后的课
			
			//3.解除关系
			

			c1.getStudents().remove(s);
			c2.getStudents().add(s);
			
			session.getTransaction().commit();
			
			session.close();
		}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值