zoukankan      html  css  js  c++  java
  • hibernate笔记

    1.hibernate中的list()遍历方法和iterator()遍历方法之间的区别

    1:返回的类型不一样,list()返回List, iterate()返回Iterator,
    2: 获取数据的方式不一样,list()会直接查数据库, iterate()会先到数据库中把id都取出来,然后真正要遍历某个对象的时候先到缓存中找,如果找不到,以id为条件再发一条sql到数据库,这样如果缓存中没有数据,则查询数据库的次数为n+1。

    3:iterate会查询2级缓存, list只会查询一级缓存。
    4: list()中返回的List中每个对象都是原本的对象, iterate()中返回的对象是代理对象.

    5.hibernate中String hql="select count(id) from emp";注意:不管你实体类中的对应的数据库中的主键名称是什么,count(id)表示的就是你数据库表,以及实体类中的主键,这是非常人性化 的设计。

    6.学习了uniqueResult()返回的必须是唯一的结果

    hql中的参数绑定

      使用普通的字符串拼接的方式,性能低下,并且安全性也不高

      其他的方式   ? 的使用

                        

      

     使用占位符:

                

                 使用问号占位符基本上和sql是一致的。

               

     在后期调整参数的顺序的时候,使用名称绑定的这种方式就比问号来说相对占优势。推荐使用名称绑定的这种方式

                     

                    

    7.hibernate中实现动态查询

         数据访问层其实只是一个执行者,是要在业务逻辑层中书写sql语句的,

         命名参数名一定要和参数封装对象的属性名一致。

    8.hibernate中实现分页查询

                         

    9.在hibernate中使用投影查询

    投影:Projection

    推荐使用投影查询,若查询结果仅用于展示,不需要保持对象的持久化状态,应该尽量使用投影查询以减少开销,提高效率。

    10.使用Myeclipse反向工程工具

    如果你的myeclipse中没有反向生成工具:https://blog.csdn.net/sinat_21843047/article/details/79086268

    自己的电脑不行,所以这块没有做。

    Hibernate关系映射

    1.理解关联关系

      单项的关联     双向的关联

       关系映射避免了在对象模型和关系型数据库之间的切换  关联关系是有方向的

      多对一的时候:普遍使用的是set集合HashSet

        注意:这是遍历set集合的方式,一定不要忘记了!

    cashed属性的使用

    同样运用的不得当的情况下会清空其他字段的属性值。

    inverse属性的作用和设置

    inverse属性指定了关联关系中的方向

         *inverse设置为false,则为主动方,由主动方负责维护关联关系,默认

         *inverse设置为true,不负责维护关联关系

    注意:在inverse等于true的时候,就表示没有那两条update语句了,在这里我们建议将inverse属性设置为true

    多对多的关联映射

    这里会涉及到3张表,项目表   雇员表   对应关系表

    用的是many-to-many的标签

     hibernate中的延迟加载机制

    延迟加载:是当在正真需要数据的时候,才执行sql查询语句,避免了系统性能的开销。  

    延迟加载策略分为:

      类级别的延迟加载策略

      一对多关联和多对多的关联的延迟加载策略

      多对一的关联的延迟加载

     

     

  • 相关阅读:
    Linux下C程序的反汇编【转】
    数据在内存中的存储方式( Big Endian和Little Endian的区别 )(x86系列则采用little endian方式存储数据)【转】
    linux arm的存储分布那些事之一【转】
    linux arm mmu基础【转】
    linux 进程内存解析【转】
    如何更方便的查看Linux内核代码的更新记录【转】
    设备树解析【转】
    分析内核源码,设备树【转】
     Meltdown论文翻译【转】
    device tree --- #address-cells and #size-cells property【转】
  • 原文地址:https://www.cnblogs.com/dongyaotou/p/9901969.html
Copyright © 2011-2022 走看看