Struts与Hibernate整合

首先分析一下不同层面他们的作用和相互关系。

1 ,po  表映射的持久对象。

2,dao 封装对数据库的相关操作。

3,vo 值对象。传递数据。

4,bo 调用dao结合vo,封装业务逻辑。

 

通常情况下建立一个BaseDAO这样封装通用方法的类,有上层接口当然更好。

业务层尽量不要出现po类,尤其是hql,尽量做到层面之间的低耦合。

 

现在开始-->做一个添加和删除操作

BaseDAO

public class BaseDAO {

	protected void add(Object obj) throws Exception {
		Session session = null;
		try {
			session = HibernateSessionFactory.getSession();
			session.save(obj);
			session.beginTransaction().commit();
			if (session != null) {
				session.close();
			}
		} catch (RuntimeException e) {
			session.beginTransaction().rollback();
			if (session != null) {
				session.close();
			}
			throw e		}
。。。。。。。。。。
	}

 

 首先建立一个person表映射,接着是PersonDAO

PersonDAO

package sh.dao;

import org.hibernate.Query;
import org.hibernate.Session;

import config.HibernateSessionFactory;

import sh.po.Person;

/*
 * DAO
 * */
public class PersonDAO {
	public boolean add(String name, String pwd) throws Exception {
		BaseDAO baseDAO = new BaseDAO();
		Person person = new Person();
		person.setName(name);
		person.setPwd(pwd);
		baseDAO.add(person);
		return true;
	}

	public boolean delete(String name) {
		Session session = null;
		try {
			session = HibernateSessionFactory.getSession();
			session.beginTransaction();
			Query query = session
					.createQuery("delete from Person where name=?");
			query.setString(0, name);
			query.executeUpdate();
			session.beginTransaction().commit();
			if (session != null) {
				session.close();
			}
		} catch (Exception e) {
			// TODO: handle exception
			if (session != null) {
				session.close();
			}
		}

		return true;

	}

}

 

 

struts Action 里面添上

添加

boolean flag = new PersonDAO().add(infoForm.getName(), infoForm
    .getPwd());

 删除

	boolean flag =  new PersonDAO().delete(infoForm.getName());

 

ok。。。重要的就这几步。

你可能感兴趣的:(DAO,Hibernate,struts)