SSH框架CRUL

—  hibernate struts2 spring 三大框架 整合原理

  与其说hibernate strut2 和spring 整合 不如说 是 spring与hibernage 和 spring与Struts2 的整合

  就是把对象交给spring来管理 (Struts2的action对象 ,hibernate 中sessionFactory 对象交给 spring来管理  ) service层中的事务 交给spring来管理

织入事务通知,(事务管理器)。

  

  

二 导入jar

  Hibernate 需要的jar包

struts2 需要jar 包

  注意:有重复包存在.删除低版本的

      

spring 需要jar

  

三 spring 与web 项目整合

    创建applicationContext.xml  

  

  web.xml 启动容器监听器

四 搭建struts2

      1 创建action

    

  2 配置struts2配置文件

    

    3 配置web.xml

    

  五 Spring整合Struts2  struts2 负责创建Action的创建及组装  

    1 开启struts2常量 

    

    2 将Action Service spring容器中

      

      

    3修改struts2 Action的 class 属性

      

   六  搭建Hibernate 

      1 导入实体类  映射文件 | ORM 元数据

      

      2  hibernate 主要配置文件

        

   3 测试

    

  七 spring整合hibernate

      1将hibernate.cfg.xml中的配置转移到applicationContext.xml中

      

  测试

  

  八 完成Dao|service

      书写配置dao

public class CustomerDaoImpl extends HibernateDaoSupport implements CustomerDao {

    //简化HQL|Criteria查询, 基础增删改查与之前一样
    
    @Override
    public void save(Customer c) {
        getHibernateTemplate().save(c);
    }

    @Override
    public void delete(Customer c) {
        getHibernateTemplate().delete(c);
    }

    @Override
    public void update(Customer c) {
        getHibernateTemplate().update(c);
    }

    @Override
    public Customer findById(Long id) {
        return getHibernateTemplate().get(Customer.class, id);
    }

    @Override
    //HQL/Criteria
    public List<Customer> findAll() {
        //HQL
        //return (List<Customer>) getHibernateTemplate().find(" from Customer ");
        //Criteria
        DetachedCriteria dc = DetachedCriteria.forClass(Customer.class);
        //查询
        //return (List<Customer>) getHibernateTemplate().findByCriteria(dc);
        //分页查询
        return (List<Customer>) getHibernateTemplate().findByCriteria(dc,0,5);
    }
}

  配置dao

    

---

书写service

     配置service

  

    测试 

、  

  九  AOP 事务(xml)

    事务管理器 

    

      事务通知 

        

        切面 

          

    测试 

    

    不配置事务出现异常

    

  十  解决no session 问题  

    

      web.xml 配置 

        

    十一  总结  

       关于 spring 整合 hibernate  

      a.Spring和Hibernate的整合就是spring接管SessionFactory的创建

      b.Spring针对Hiberante的操作有一个封装的对象HibernateTemplate

      c.和JdbcTemplate一样,HibernateTemplate也有一个HibernateDaoSupport

      d.HibernateTemplate和HibernateDaoSupport都在spring-orm-4.2.4.RELEASE.jar中

      e.我们Dao采用继承HiberanteDaoSupport的方式编写,它一样不能用于注解配置。

      

原文地址:https://www.cnblogs.com/xiaowazi/p/9098507.html