hibernate使用(结合ssh)

来源:互联网 发布:java insert的返回值 编辑:程序博客网 时间:2024/05/29 02:57

hibernate封装了hql,如果直接使用sql语言,则先通过createSqlQuery()得到SQLQuery对象,之后执行executeupdate(),在spring注册事务,@ transaction  propagation配置事物管理,一个service会产生一个事务,否则会报异步错误错误,transaction management。ssh加载过程:页面请求->servlet容器转发(一般tomcat容器)->struts2拦截捕获请求(action)(filter)->spring 事务处理->hibernate 处理数据库->返回业务处->返回struts->返回页面。

可以在项目中配置上下文factory,可以获取hibernate或者spring的context。

ssh加载过程:在tomcat中web.xml中,通过<context-param>标签加载spring.xml文件,通过配置filter拦截器,加载Struts2(struts2由servlet filter发展过来的),之后是配置<listener-class>,可以使spring自带的contestLoaderListener或者是继承这个类的(例如命名一个CustomContextLoaderListener继承这个listener-class)。在listener中还可以配置一些before class loader,在初始化context的时候,执行这部分class。在使用hibernate时,保证只有一个sessionFactory。hibernate中主要有5个接口,configuration、sessionFactory、session、transaction、query。configuration接口主要配置一些数据库底层信息,主要在hibernate.cfg.xml中配置,通过Configuration config=new Configuration().configure()得到hibernate.cfg.xml中的信息。sessionFactory接口负责创建session,通过sessionFactory sessionFactory=config.buildSessionFactory()创建,session接口,通过Session session=sessionFactory.openSession(),transaction接口通过session.beginTransaction(),query 通过session.createQuery或者session.createSqlQuery()创建sql语句。

spring主要由6个模块组成:spring core、AOP、Instrumention、Web与远程调用、数据访问与集成、test。spring的core管理bean的创建、配置、管理和上下文、E-mail、JNDI,AOP帮助应用对象解耦,把遍布系统的关注点从所应用的系统中解耦出来。数据访问与集成模块为jdbc、dao提供了模板,为hibernate、mybatis提供了ORM模块。spring的事务管理支持所有的ORM和jdbc,该模块还包含了JMS之上的spring抽象层,会以异步的方式与其他应用通信。web与远程调用模块提供了基于spring的mvc,还提供了远程调用功能,构建rest api。instrumention为tomcat提供了一个类加载,

原创粉丝点击