Struts与Hibernate调整
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。。。重要的就这几步。