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. pom中parent和dependency区别以及dependencyManagement区别

    真的很详细 很感动 1.在同一个pom文件下,如果<dependencies>和<dependencyManagement>中都对该jar做了依赖,以<dependenc ...

  2. 【C++】static关键字有哪些用法?其主要作用是什么?

    static关键字的用法: 1)将全局变量修饰为静态全局变量 存储在静态存储区,整个程序运行期间一直存在 静态全局变量在声明它的文件之外是不可见的,只要声明它的文件可见,而普通的全局变量则是所有文件可 ...

  3. 华为交换机配置Telnet步骤

    通过Telnet方式登录交换机进行设备查询管理为各网络管理员提供了便利,不需要成天拎着console线夹着笔记本蹲在机房里,只要在能连接到相应网络的电脑上Telnet连接即可. 前提条件是该交换机已经 ...

  4. celery 定时任务,使用crontab表达式不执行(版本4.3.x)

    celery 定时任务,使用crontab表达式不执行(版本4.3.x) 在使用celery 执行定时任务时,发现任务不会执行,schedule设置如下: 经测试,如果去掉hour,则任务每分钟都会执 ...

  5. Matlab状态模式

    状态模式就是将状态的条件判断语句转化成其函数重写形式,利用了面向对象语言的多态性,本文根据https://blog.csdn.net/lm324114/article/details/78819602 ...

  6. Java项目之查询后分页

    一.Jsp页面: <%@ page language="java" contentType="text/html; charset=UTF-8" page ...

  7. v-for循环列表,展开样式随手风琴

    <div class="product_box" v-for="(item,index) of kinds" :key="index" ...

  8. django 自定义身份认证

    自定义身份认证: Django 自带的认证系统足够应付大多数情况,但你或许不打算使用现成的认证系统.定制自己的项目的权限系统需要了解哪些一些关键点,即Django中哪些部分是能够扩展或替换的.这个文档 ...

  9. Leetcode刷题python

    Two Sum 两数==target 方法二更好 题1,对时间复杂度有要求O(n),所以维护一个字典,遍历过的数值放在字典中,直接遍历时候查找字典中有没有出现差,查找字典时间复杂度是O(1),所以O( ...

  10. Centos7搭建Harbor私有仓库(一)

    1 说明 前文Centos7搭建DockerRegistry介绍了DockerRegistry的搭建,但它没有UI页面,因此选择Harbor 以下基于镜像CentOS-7-x86_64-Minimal ...