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。。。重要的就這幾步。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章