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