【Hibernate】初学Hibernate(一)

          

             Hibernate是一个开放源代码的框架,在我们的网上商城中,我们可以很轻松的实现对实体的操作,那都是因为他的便捷。它用面向对象的方式来操作着数据库,所以我们用它可以取代了大部分JDBC的代码。


         一:核心类和接口


         在application中,我们总是在注入D层中写到了SessionFactory,他是Hibernate的一个接口。其实,Hibernate一共有六个核心类和接口,来了解一下:


          Session:他可不是我们用的缓冲哦。他是应用程序和hibernate之间的主要的运行接口,主要的功能就是提供对映射的实体类事例的创建、读取、删除、更新等操作 。


          SessionFactory:他是负责初始化Hibernate的,这也就是我们在敲网上商城的时候,在application的dao中总是注入他的原因,这样可以在系统刚刚启动的时候,就初始化了Hibernate。从Factory,我们知道他是用到了工厂模式。


           Transaction:这就是事务,我们在点击提交订单的同时,要将购物车的商品清空,这里就是用到了事务,需要在配置文件中配置事务,然后对事务进行开启、关闭、回滚等操作。


            Query:在Hibernate2中,我们是用find来执行hql语句的,但是在hibernate3中是用来Query接口来取代find方法的。他可以用?来设定参数,同时可以进行参数的绑定,他还有setEntity() setParameter setPropertyies方法,同时使用list()方法来取得查询结果list的集合。


            Criteria:可以执行数据库的查询操作,可以用sql和hql俩种表示方法


            Configuration:他是对hibernate进行配置,和对他进行的启动,在启动的过程中,首先定位映射文档的位置,然后读取配置信息,他是启动hibernate时候遇到的第一个对象。


           二:重量级和轻量级      


            我们都知道,spring和hibernate是轻量级的,而struts是重量级框架,那么二者是怎么区分的呢?

            

             轻量级的框架spring核心文件很小,在运行的时候所需要的资源也比较少,依赖性也比较少。重量级的框架,像是struts和EJB启动的时候,需要消耗很多的内存、CPU等,依赖的东西也比较多,需要其他的容器才能运行。


           三:延迟加载


              假如不延迟加载,也就是非延迟加载,也就是在读取一个对象的时候,会将和这个对象有关的其他对象一起读取出来,这样就会导致整个数据库在系统刚刚初始化阶段就已经读出来了,这样是不是很消耗性能。


             我们知道,在hibernate的映射文件中,会定义很多的关联实体,比如一对多,多对一等,hibernate也会使用延迟加载来加载关联实体。


              关联实体是多个实体时候,包括一对多和多对多,此时关联实体将以集合的形式存在,hibernate将使用PersistentSet、PersistentList等集合来管理延迟加载的实体。


              实现关联实体是单个实体的时候,包括一对一和多对一,延期加载是一个动态生成的代理对象,忽然觉得代理模式真的是好高大上。这俩个元素也可通过lazy属性来指定延迟加载。




             这个orm(object relational mapping)框架之一,让我们只需要提供持久化类和表的映射关系,在运行的时候就能参照映射文件的信息,把对象持久化到数据库中,真的是大大的方便了我们的编程啊。










     

             

         

            


          


          


           


          

         

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 28
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 28
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值