`
taomujian
  • 浏览: 109326 次
  • 性别: Icon_minigender_1
  • 来自: 安徽-合肥
社区版块
存档分类
最新评论

Hibernate 双向ManyToMany 究极解决 新增-删除-修改-查询(2)

    博客分类:
  • J2EE
 
阅读更多

DAO设计:

已经设计好数据实体以及关联关系了,接下来DAO层的编码,这部分没什么东西,可以直接无视

HibernateUtil:

package org.taomujian.db;

import org.hibernate.SessionFactory;

import org.hibernate.cfg.Configuration;


public class HibernateUtil {


    private static final SessionFactory sessionFactory = buildSessionFactory();


    private static SessionFactory buildSessionFactory() {

        try {

            // Create the SessionFactory from hibernate.cfg.xml

            return new Configuration().configure().buildSessionFactory();

        }

        catch (Throwable ex) {

            // Make sure you log the exception, as it might be swallowed

            System.err.println("Initial SessionFactory creation failed." + ex);

            throw new ExceptionInInitializerError(ex);

        }

    }


    public static SessionFactory getSessionFactory() {

        return sessionFactory;

    }


}

 OrgDAO:

package org.taomujian.dao;

import org.hibernate.Session;
import org.taomujian.db.HibernateUtil;
import org.taomujian.model.Org;

public class OrgDAO{
	
	
	public void saveOrg(Org org){
		if(null==org)	return ;

		Session session = HibernateUtil.getSessionFactory().getCurrentSession();
		session.beginTransaction();
		session.persist(org);
		session.getTransaction().commit();
	}
	
	public void delOrg(Org org){
		Session session = HibernateUtil.getSessionFactory().getCurrentSession();
		session.beginTransaction();
		session.delete(org);
		session.getTransaction().commit();
	}
	
	public void mergeOrg(Org org){
		if(null==org)	return ;

		Session session = HibernateUtil.getSessionFactory().getCurrentSession();
		session.beginTransaction();
		session.merge(org);
		session.getTransaction().commit();
	}
	
	public Org getOrg(String id){

		Session session = HibernateUtil.getSessionFactory().getCurrentSession();
		session.beginTransaction();
		Org org = (Org)session.get(Org.class, id);
		session.getTransaction().commit();
		return org;
	}
}

 RoleDAO:

 

package org.taomujian.dao;

import org.hibernate.Session;
import org.taomujian.db.HibernateUtil;
import org.taomujian.model.Role;

public class RoleDAO {
	
	/**
	 * 保存role记录,可以只单独保存role,也可以完整的保存role以及org和级联关系
	 * 
	 * @param role
	 */
	public void saveRole(Role role){
		if(null==role)	return ;

		Session session = HibernateUtil.getSessionFactory().getCurrentSession();
		session.beginTransaction();
		session.persist(role);
		session.getTransaction().commit();
	
	}
	
	public void mergeRole(Role role){
		if(null==role)	return ;

		Session session = HibernateUtil.getSessionFactory().getCurrentSession();
		session.beginTransaction();
		session.merge(role);
		session.getTransaction().commit();
	}
	
	
	/**
	 * 根据角色的ID获取一条role数据
	 * @param id
	 * @return
	 */
	public Role getRole(String id){
		
		Session session = HibernateUtil.getSessionFactory().getCurrentSession();
		session.beginTransaction();
		Role role = (Role)session.get(Role.class, id);
		System.out.println(role.getOrgList());
		session.getTransaction().commit();
		
		return role;
	}
	
	/**
	 * 删除角色:
	 * @param id
	 */
	public void removeRole(Role role){
        Session session = HibernateUtil.getSessionFactory().getCurrentSession();  
        session.beginTransaction();   
        session.delete(role);
        session.getTransaction().commit();     
	}
	
}

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics