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 exceptionif (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。。。重要的就这几步。