在回顾sturts2,spring,hibernate框架的时候,注意到其中在进行spring整合hibernate时有一个sessionFactory实例,对这块知识突然有点模糊,所以就写下一些东西(结合百度)来总结记录一下。如有不对,欢迎指出讨论。
首先需要理解的几个概念:
一、Hibernate
Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。 Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序使用,也可以在Servlet/JSP的Web应用中使用。----百度百科
我自己的理解是:hibernate可以利用其orm机制,把传统的关系型数据库操作,转变成面向对象的方式来操作。把数据库对应的表映射成一个对象。生成其属性对应的set/get方法,在表单提交到action中时 只要建立一个对象实例即可。对其进行操作。
二、sessionFactory
SessionFactory接口负责初始化Hibernate。它充当数据存储源的代理,并负责创建Session对象。这里用到了工厂模式。需要注意的是SessionFactory并不是轻量级的,因为一般情况下,一个项目通常只需要一个SessionFactory就够,当需要操作多个数据库时,可以为每个数据库指定一个SessionFactory。----百度百科
自己的理解:顾名思义,sessionfactory,就是用来创建session会话(具体接下来讲)的工厂。创建一个sessionfactory,一般有两种创建方式,1.从XML文件读取配置信息构建SessionFactory,2.从Java属性文件读取配置信息构建SessionFactory(这个不熟悉,没怎用,不好意思)。
三、session
首先,http是一个无状态协议(stateless protocol),在一个用户发送多个请求期间,不要求网站服务器保存该用户的识别标识,请求与相应序列等。一个HTTP会话(session)是一个请求响应对,下一个请求是新的会话,在服务器端,两个请求独立。服务器端要想跟踪访问进程需要用其他手段,如HTTP cookie或在超级链接的URL中植入跟踪代码。--知乎某答主的解释