• 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的方式编写,它一样不能用于注解配置。

          

  • 相关阅读:
    投稿007期|令人震惊到发指的PyObject对象代码设计之美
    使用OpenCV通过摄像头捕获实时视频并探测人脸
    洛谷 P1259【黑白棋子的移动】
    入门OJ 1281【营救(save)】
    入门OJ 3204【射击】
    POJ 3126【长度为素数的路径个数】
    POJ 1980【Unit Fraction Partition】
    洛谷 P2374【搬运工】
    【常用算法总结——记忆化搜索】
    P3052 [USACO12MAR]【摩天大楼里的奶牛(Cows in a Skyscraper)】
  • 原文地址:https://www.cnblogs.com/xiaowazi/p/9098507.html
Copyright © 2020-2023  润新知