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查询语句,避免了系统性能的开销。  

延迟加载策略分为:

  类级别的延迟加载策略

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

  多对一的关联的延迟加载

hibernate笔记的更多相关文章

  1. 框架Hibernate笔记系列 基础Session

    标题:框架Hibernate笔记 资料地址: 1. www.icoolxue.com 孔浩 1.背景简介 Hibenate是JBoss公司的产品.它是数据持久化的框架.Usually,我们使用JDBC ...

  2. hibernate笔记--cascade级联以及inverse属性

    cascade : 不管是单向多对一还是一对多,或者是双向的一对多关系,在一的一端映射文件中有一个set标签,在多的一端有many-to-one标签,拿前几篇笔记里讲的Grade和Student举例, ...

  3. Hibernate 笔记 HQL查询 条件查询,聚集函数,子查询,导航查询

    在hibernate中进行多表查询,每个表中各取几个字段,也就是说查询出来的结果集并没有一个实体类与之对应,如何解决这个问题? 解决方案一,按照Object[]数据取出数据,然后自己组bean 解决方 ...

  4. Hibernate笔记一

    背景 jdbc的优缺点 A:直接操作底层,提供了简单,便捷的访问数据库方法,跨平台比较强,灵活,可以写很多赋值的SQL语句:是最底层的数据库操作,所以效率比较高,Sql语句可以自己选择写,采用效率最高 ...

  5. hibernate笔记--缓存机制之 二级缓存(sessionFactory)和查询缓存

    二级缓存(sessionFactory): Hibernate的二级缓存由SessionFactory对象管理,是应用级别的缓存.它可以缓存整个应用的持久化对象,所以又称为“SessionFactor ...

  6. hibernate笔记--缓存机制之 一级缓存(session缓存)

    一级缓存: 又称为session缓存,它和session生命周期相同,周期非常短.是事务级别的缓存: 还是以Book和Category这两个表为例,我们用代码观察一个缓存的存在: 假设现在我要去查询i ...

  7. hibernate笔记--使用注解(annotation)方式配置单(双)向多对一的映射关系

    前面几篇都是介绍的用配置文件来实现实体类到数据库表的映射,这种方式是比较麻烦的,每一个pojo类都需要写一个相应的*.hbm.xml,无疑增加了很多代码量,不过也有优点就是利于维护,为了方便开发,Hi ...

  8. hibernate笔记--继承映射关系的三种实现方式

    单表继承映射(一张表): 假设我们现在有三个类,关系如下: Person类有两个子类Student和Teacher,并且子类都具有自己独有的属性.这种实体关系在hibernate中可以使用单表的继承映 ...

  9. hibernate笔记--单(双)向的多对多映射关系

    在讲单向的多对多的映射关系的案例时,我们假设我们有两张表,一张角色表Role,一张权限表Function,我们知道一个角色或者说一个用户,可能有多个操作权限,而一种操作权限同时被多个用户所拥有,假如我 ...

  10. hibernate笔记--基于主键的单(双)向的一对一映射关系

    上一节介绍的基于外键的一对一映射关系中,在Person表中有一个外键列idCard_id,对应的idCard表的主键id,至于基于主键的一对一映射关系,就是指Person表中抛弃了idcard_id这 ...

随机推荐

  1. 【洛谷4482】Border的四种求法(后缀自动机_线段树合并_链分治)

    这题我写了一天后交了一发就过了我好兴奋啊啊啊啊啊啊 题目 洛谷 4482 分析 这题明明可以在线做的,为什么我见到的所有题解都是离线啊 -- 什么时候有机会出一个在线版本坑人. 题目的要求可以转化为求 ...

  2. SQL Server 2019 新函数Approx_Count_Distinct

    2019年11月4日微软发布了2019正式版,该版本有着比以往更多强大的新功能和性能上的优势,可参阅SQL Server 2019 新版本. SQL Server 2019具有一组丰富的增强功能和新功 ...

  3. volatile-最轻量级的并发实现及其内存语义

    原文连接:(http://www.studyshare.cn/blog/details/1163/0 ) 一.volatile定义 volatile是java并发编程中修饰类的成员变量.成员属性或者对 ...

  4. 2019 用友网络java面试笔试题 (含面试题解析)

    本人3年开发经验.18年年底开始跑路找工作,在互联网寒冬下成功拿到阿里巴巴.今日头条. 用友网络等公司offer,岗位是Java后端开发,最终选择去了 用友网络. 面试了很多家公司,感觉大部分公司考察 ...

  5. loj#10067 构造完全图(最小生成树)

    题目 loj#10067 构造完全图 解析 和kruscal类似,我们要构造一个完全图,考虑往这颗最小生成树里加边 我们先把每一条边存下来, 把两个端点分别放在不同的集合内,记录每个集合的大小,然后做 ...

  6. Vue父组件向子组件传值以及data和props的区别

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/xukongjing1/article/ ...

  7. Django:表多对多查询、聚合分组、FQ查询、事务

    1表多对多的关系查询 准备工作创建表结构 from django.db import models # Create your models here. class Publisher(models. ...

  8. python私有工具库小结

    1.一些试用py工具清单 https://www.zhihu.com/question/60402355/answer/752917744?utm_source=wechat_session& ...

  9. MySQL Backup--Xtrabackup介绍

    Xtrabackup介绍 Xtrabackup是由Percona公司研发的开源热备工具,支持MYSQL 5.0 以上版本. 由于Xtrabackup支持备份innodb表,实际生产环境中我们使用的工具 ...

  10. MySQL Index--BNL/ICP/MRR/BKA

    MySQL关联查询算法: BNL(Block Nested-Loop) ICP(Index Condition Pushdown) MRR(Multi-Range Read) BKA(Batched ...