zoukankan      html  css  js  c++  java
  • Hibernate 总结

    Hibernate简单使用: MyEclipse Hibernate 学习总结

    113. 为什么使用hibernate

    1) Hibernate 是对jdb的封装,大大简化了数据访问层的繁琐的重复代码

    2) Hiberate是一个优秀的ORM实现, 很大程度上简化了DAO层的编码功能

    3) 很方便的进行数据库的移植工作

    4) 提供缓存机制,使程序执行更改高效

    114. 什么是ORM框架

    ORM(Object Relation Mapping) 对象关系映射,是把数据库中的关系数据映射成程序中的对象。

    使用ORM的有点: 提高了开发效率降低了开发成本、开发更简单更对象化、可移植更强。

    115、Hibernate中如何查看打印的SQL语句

    在Config里面把hibernate.show_SQL设置为true就可以。但不建议开启,开启后会降低程序的运行效率。

    ?116、Hibernate 有几种查询方式?

    三张: Hql(Hibenate Query Language), 原生SQL, 条件查询Criteria

    117、Hibernate实体类可以被定义为final吗

    实体类可以定义为final类,但是这样的话就不能使用hibernate代理模式下延迟关联提供性能了,所以不建议实体类为final.

    118、在hibernate中使用Integer和int做映射有什么区别?

    Integer类型为对象,它的值允许为null, 而int属于基础数据类型,值不能为null

    119、 hibernate是如何工作的?

    1) 读取并解析配置文件

    2) 读取并解析映射文件,创建SessionFactory

    3) 打开Session

    4) 创建事务

    5)进行持久化操作

    6) 提交事务

    7) 关闭Session

    8) 关闭SessionFactory

    ? 120. get() 和 load() 的区别?

    1) 数据查询时,没有OID指定的对象, get() 返回null; load() 返回一个代理对象。

    2) load() 支持延迟加载; get() 不支持延迟加载。

    ? 121. 说下Hibernate的缓存机制?

    hibernate常用的缓存有一级缓存和二级缓存:

    一级缓存: 也叫Session缓存,只在Session作用范围内有效,不需要用户干涉,有Hibernate自身维护,可以通过evict(object)清除object的缓存; clear() 清除一级缓存中的所有缓存; flush() 刷出缓存
    二级缓存: 应用级别的缓存,在所有Session中都有效,支持配置第三方的缓存,如: EhCache。

     ? 122.Hibernate对象有哪些状态

    临时/瞬时状态: 直接new出来的对象,该对象还没有被持久化(没有被保存到数据库中),不受Session管理

    持久化状态: 当调用Session的save/svaeOrupdate/get/load/list等方法的时候,对象就是持久化状态。

    游离状态: Session关闭之后对象就是游离状态。

    ?123、在Hiberante中getCurrentSession和openSession的区别是什么?

    1) getCurrentSession会绑定当前线程,而openSession则不会

    2) getCurrentSession事务是spring 控制的,并且不需要手动关闭,而openSession需要我们自己手动开启和提交事务。

    124、Hibernate实体类必须要有无参构造函数吗?为什么?

    Hibernate中每个实体类必须提供一个无参构造函数,因为Hibenate框架要使用reflection api,通过ClassnewInstance()来创建类的实例。如果没有无参的构造函数就会抛出异常。

  • 相关阅读:
    新的思考方式
    我在干售后!
    设计制造嵌入式系统
    镶嵌在系统中的系统
    苏黄永郦的第六周读书报告
    苏黄永郦的第五周读书报告
    苏黄永郦的第四周读书报告
    苏黄永郦的第三周读书报告
    1051 最大子矩阵和
    1065 最小正子段和
  • 原文地址:https://www.cnblogs.com/linlf03/p/10777568.html
Copyright © 2011-2022 走看看