userdao.java

来自「此程序是有关hibernate多对多例子的完整实例」· Java 代码 · 共 74 行

JAVA
74
字号
package org.egplat.hibernate.dao;

import org.egplat.hibernate.db.HibernateSessionFactory;
import org.egplat.hibernate.po.Duty;
import org.egplat.hibernate.po.User;
import org.hibernate.Session;
import org.hibernate.Transaction;

public class UserDao implements IDao{
	
	

	public void delete(Object o) {
		Session s = HibernateSessionFactory.getSession();
		Transaction t = s.beginTransaction();
		s.delete(o);		
		t.commit();
	}

	public Object findByPk(Integer i) {
		Session s = HibernateSessionFactory.getSession();
		 return s.get(User.class, i);
	}

	public void save(Object o) {
		Session s = HibernateSessionFactory.getSession();
		Transaction t = s.beginTransaction();
		s.saveOrUpdate(o);		
		t.commit();
	}
	
	public void save2() {
		Session s = HibernateSessionFactory.getSession();
		Transaction t = s.beginTransaction();
		
		User u = (User)s.get(User.class, 2);
		Duty d = (Duty)s.get(Duty.class, 1);
		u.getDuties().add(d);
		
		t.commit();
	}
	
	public void upd2() {
		Session s = HibernateSessionFactory.getSession();
		Transaction t = s.beginTransaction();
		
		User u = (User)s.get(User.class, 2);		
		u.getDuties().clear();
		Duty d = (Duty)s.get(Duty.class, 2);
		u.getDuties().add(d);
		
		t.commit();
	}
	
	public void del2() {
		Session s = HibernateSessionFactory.getSession();
		Transaction t = s.beginTransaction();
		
		User u = (User)s.get(User.class, 2);		
		Duty d = (Duty)s.get(Duty.class, 2);
		u.getDuties().remove(d);
		
		t.commit();
	}

	public void update(Object o) {
		Session s = HibernateSessionFactory.getSession();
		Transaction t = s.beginTransaction();
		s.update(o);		
		t.commit();
	}

}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?