Hibernate的升级&&Query用法

本文主要介绍了Hibernate的升级过程,包括实现SessionFactory的单态模式、使用getCurruntSession代替openSession、事务管理和Query查询的使用。文章详细阐述了Configuration、SessionFactory、Session、Transaction和Query的基本概念及操作步骤,并提供了相关代码示例。最后总结了在升级和使用Query过程中遇到的问题和解决方法,为读者提供了深入理解Hibernate的基础。
摘要由CSDN通过智能技术生成

 


前言

在上一篇日志的基础上对Hibernate进行升级并且根据Query用法进行查询


提示:以下是本篇文章正文内容,下面案例可供参考

一、基本概念

1、Configuration:

    概述: Configuration类负责管理Hibernate的配置信息。启动Hibernate、创建SessionFactory对象。

      (1)  Hibernate运行的底层配置信息:数据库的URL、用户名、密码、JDBC驱动类,数据库Dialect,数据库连接池等。

      (2)  Hibernate对象关系映射文件(*.hbm.xml) 。

   Hibernate配置的两种方法:

     (1)属性文件( (hibernate.properties) 
                 调用代码:Configuration cfg = new Configuration();
     (2)XML文件(hibernate.cfg.xml) 。
                 调用代码:Configuration cfg = new Configuration().configure();
                 configrure()方法默认读hibernate.cfg.xml

2.SessionFactory:

   概述:应用程序从SessionFactory(会话工厂)里获得Session(会话)实例。它在多个应用线程间进行共享。

      (1) SessionFactory是线程安全的(Thread-Safe),可以让多个执行线程同时存取SessionFactory而不会有数据共享的问题。
      (2) 会话工厂缓存了生成的SQL语句和Hibernate在运行时使用的映射元数据。
      (3) 需要注意的是SessionFactory是重量级的,因为一般情况下,一个项目通常只需要一个SessionFactory就够(单例模式),当需要操作多个数据库时,可以为每个数据库指定一个SessionFactory。
   调用代码: SessionFactory sessionFactory =cfg.buildSessionFactory();

3.Session 

  概述:Session接口负责执行被持久化对象的CRUD操作(CRUD的任务是完成与数据库的交流)
      (1)Session也称为持久化管理器,因为它是与持久化有关的操作接口。
      (2)Session不是线程安全的,应该避免多个线程共享同一个Session实例。
      (3)Session通过SessionFactory打开,在所有的工作完成后,需要关闭。
      (4)保证在一个线程中仅存在一个Session实例
                    getCurrentSession (Hibernate 3+)
                    可以采用ThreadLocal的办法.(Hibernate 2)
                    把Session对象放在方法内部定义.
   它与Web层的HttpSession没有任何关系。

4.Transaction(事务)

    概述: Transaction接口负责事务相关的操作。
          它将应用代码从底层的事务实现中抽象出来——这可能是一个JDBC事务,一个JTA用户事务或者甚至是一个公共对象请求代理结构(CORBA)——允许应用通过一组一致的API控制事务边界。

          这有助于保持Hibernate应用在不同类型的执行环境或容器中的可移植性。

   调用代码:
Transa

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值