首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

hibernate笔记(三)

目的:减少对数据库访问次数!从而提升hibernate执行效率!...Hibernate中缓存分类: 一级缓存 二级缓存 概念 1)Hibenate中一级缓存,也叫做session缓存,它可以在session范围内减少数据库访问次数!...list() 一次把所有的记录都查询出来, 会放入缓存,但不会从缓存中获取数据 Iterator N+1查询; N表示所有的记录总数 即会先发送一条语句查询所有记录主键(1), 再根据每一个主键再去数据库查询...四、一对一映射 需求: 用户与身份证信息 一条用户记录对应一条身份证信息! 一对关系!...总结: 所有的子类都写到一个映射文件; 父类不对应表; 每个子类对应一张表 Hibernate中映射: 对一 一对 一对一 (对一特殊应用) 组件 继承

58740

初识Hibernate之关联映射(一)

显然,在分别创建Student和Grade表之后,Hibernate又向数据库发送了一条alter语句,该语句负责添加外键关联。下面我们看看能否利用外键获取到Grade表中成绩。...有点绕,但是学过数据库原理应该不难理解。下面我们看,如何利用外键获取对应Grade表中一条完整记录。...这个对一和一对之间有个很明显区别,对于对一情况,我们在得到Student对象代表一条数据记录时,可以利用外键得到相对应Grade表中一条记录。...这里还看不出set作用,我们先看Hibernate为我们创建表关联是否正确,然后通过存取数据来感受set作用。 ?...这样,我们既可以从一端通过外键获取到一一端详细记录又可以从一一端通过自己主键获取一端所有对应记录

1.3K80
您找到你想要的搜索结果了吗?
是的
没有找到

Hibernate框架学习之注解配置关系映射

这就是一个典型单向一对关联关系,所谓一对一其实就是指,主表中一条记录唯一对应于从表中一条记录。但具体到我们实体类中又该如何来写呢?...像这种,userinfo表中多条不同记录对应于usersex表中一条记录情况,我们称作多对一关联关系。其中,一方设有外键列,掌控着关系维护。...,hibernate首先会为我们插入四条userinfo记录到userinfo表中(其中外键字段为空),然后插入一条记录到usersex表中,在这之后,hibernate将根据set集合中元素依次执行这么一条...当然,当我们想要取出一条usersex实例时候,hibernate也会拿该实例主键值去搜索userinfo表,并将匹配记录装载到set集合中。...比如我们想要获取一个userinfo实例,那么hibernate会先根据指定主键值查一次userinfo表,然后当需要用到usersex表相关信息时候,hibernate会拿userinfo主键值再去查一次

2.2K90

Mybatis面试整理

Mybatis能执行一对一、一对关联查询吗?都有哪些实现方式,以及它们之间区别。...Mybatis不仅可以执行一对一、一对关联查询,还可以执行对一,关联查询,对一查询,其实就是一对一查询,只需要把selectOne()修改为selectList()即可;查询,其实就是一对查询...Mybatis是否支持延迟加载 Mybatis支持association关联对象和collection关联集合对象延迟加载,association指就是一对一,collection指就是一对查询...它与全自动区别在哪里 Hibernate属于全自动ORM映射工具,使用Hibernate查询关联对象或者关联集合对象时,可以根据对象关系模型直接获取,所以它是全自动。... //需要设置id,如果两个对象属性相同,则会视为一条记录 <result column="number

2K00

SSH框架之旅-hibernate(3)

一张数据表一条记录主键都是唯一不重复。主键可以唯一标识一条记录只是主键一个作用,主键另一个作用是和其他记录和存放数据表进行关联,此时一张主键就成了另一张表外键。...1.2 三种表关系 1.2.1 一对表关系 表 A 中一条记录只能和表 B 一条记录,反之亦然。这种关系表并不常见,因为既然可以存放在两张表中数据,也可以用一张表来存放。...1.2.2 一对表关系 表 A 一条记录在表 B 中可以匹配多行,但在表 B 中一条记录在表 A 中只能有一个匹配行,这里表 A 就称为关系一方,表 B 就称为关系多方。...1.2.3 表关系 表 A 中一条记录可以在表 B 中匹配多行,反之亦然。...不改变两个多方数据表记录,而是维护第三张表关系记录,下面的修改操作包括增加一条关系记录和删除一条关系记录

92120

面试题之mybatis面试题(二)

它与全自动区别在哪里? Hibernate属于全自动ORM映射工具,使用Hibernate查询关联对象或者关联集合对象时,可以根据对象关系模型直接获取,所以它是全自动。...Mybatis能执行一对一、一对关联查询吗?都有哪些实现方式,以及它们之间区别。...能,Mybatis不仅可以执行一对一、一对关联查询,还可以执行对一,关联查询,对一查询,其实就是一对一查询,只需要把selectOne()修改为selectList()即可; 查询...其去重复原理是标签内子标签,指定了唯一确定一条记录id列,Mybatis根据列值来完成100条记录去重复功能,可以有多个,代表了联合主键语意。...Mybatis支持association关联对象和collection关联集合对象延迟加载,association指就是一对一,collection指就是一对查询。

70020

必知必会:MyBatis 常见面试题总结

答:能,MyBatis 不仅可以执行一对一、一对关联查询,还可以执行对一,关联查询,对一查询,其实就是一对一查询,只需要把 selectOne()修改为 selectList()即可;查询...其去重复原理是标签内子标签,指定了唯一确定一条记录 id 列,MyBatis 根据列值来完成 100 条记录去重复功能,可以有多个,代表了联合主键语意。...答:MyBatis 支持 association 关联对象和 collection 关联集合对象延迟加载,association 指就是一对一,collection 指就是一对查询。...它与全自动区别在哪里? 注:我出 答:Hibernate 属于全自动 ORM 映射工具,使用 Hibernate 查询关联对象或者关联集合对象时,可以根据对象关系模型直接获取,所以它是全自动。...面试题看似都很简单,但是想要能正确回答上来,必定是研究过源码且深入的人,而不是会使用的人或者用很熟的人,以上所有面试题及其答案所涉及内容,在我 MyBatis 系列博客中都有详细讲解和原理分析。

65220

Hibernate延迟加载

前言: 上一篇文章我们学习了Hibernate多表关联关系,这里就涉及到一个很实用概念:延迟加载或者也叫惰性加载,懒加载。使用延迟加载可以提高程序运行效率。...Java程序与数据库交互频次越低,程序运行效率越高,所以我们应该尽量减少Java程序与数据库交互次数Hibernate延迟加载就很好做到了这一点。...一对: 1.查询Customer,对orders进行延迟加载设置,在customer.hbm.xml进行设置,延迟加载默认为开启状态。...: 查询Classes,加载对应Student,默认延迟加载是开启,在classes.hbm.xml中进行设置。...同理,lazy第三个可选值extra与一对多关系是一样,是比true更加懒惰加载方式。 获取Student,调用classes也是同样配置,在student.hbm.xml中进行配置即可。

1.4K10

MyBatis面试题集合,90%会遇到这些问题

有了列名与属性名映射关系后,Mybatis通过反射创建对象,同时使用反射给对象属性逐一赋值并返回,那些找不到映射关系属性,是无法完成赋值。 7、Mybatis能执行一对一、一对关联查询吗?...能,Mybatis不仅可以执行一对一、一对关联查询,还可以执行对一,关联查询,对一查询,其实就是一对一查询,只需要把selectOne()修改为selectList()即可;查询,...其去重复原理是标签内子标签,指定了唯一确定一条记录id列,Mybatis根据列值来完成100条记录去重复功能,可以有多个,代表了联合主键语意。...Mybatis支持association关联对象和collection关联集合对象延迟加载,association指就是一对一,collection指就是一对查询。...它与全自动区别在哪里? Hibernate属于全自动ORM映射工具,使用Hibernate查询关联对象或者关联集合对象时,可以根据对象关系模型直接获取,所以它是全自动

1.1K10

系统学习javaweb-10-Hibernate配置与api操作

com.csxiaoyao.utils 自动建表、创建Session工厂及获取Session对象抽取 【配置文件1】:hibernate.cfg.xml 主配置文件说明 【配置文件2...//(测试) 会自动加载映射文件:User.hbm.xml .buildSessionFactory(); 4 Hibernate映射 一对对一映射(one2many) 映射...、每个类映射一张表、每个子类映射一张表) 4.1 集合映射 (collection)用户与收货地址,一个用户对应多个地址 4.2 对一与一对映射 在一对多与对一关联关系中,保存数据最好通过多一方来维护关系...配置一对多与对一:“双向关联” 只配置一对:“单项一对” 只配置对一:“单项对一” (配置了哪一方,哪一方才有维护关联关系权限) 【Inverse控制反转属性】 Inverse...inverse=true,没有控制权: 如果删除记录有被外键引用,会报错,违反主外键引用约束。如果删除记录没有被引用,可以直接删除。

92820

MyBatis面试题集合,90%会遇到这些问题

有了列名与属性名映射关系后,Mybatis通过反射创建对象,同时使用反射给对象属性逐一赋值并返回,那些找不到映射关系属性,是无法完成赋值。 7、Mybatis能执行一对一、一对关联查询吗?...能,Mybatis不仅可以执行一对一、一对关联查询,还可以执行对一,关联查询,对一查询,其实就是一对一查询,只需要把selectOne()修改为selectList()即可;查询,...其去重复原理是标签内子标签,指定了唯一确定一条记录id列,Mybatis根据列值来完成100条记录去重复功能,可以有多个,代表了联合主键语意。...Mybatis支持association关联对象和collection关联集合对象延迟加载,association指就是一对一,collection指就是一对查询。...它与全自动区别在哪里? Hibernate属于全自动ORM映射工具,使用Hibernate查询关联对象或者关联集合对象时,可以根据对象关系模型直接获取,所以它是全自动

99020

Mybatis面试问题锦集

有了列名与属性名映射关系后,Mybatis通过反射创建对象,同时使用反射给对象属性逐一赋值并返回,那些找不到映射关系属性,是无法完成赋值。 9、Mybatis能执行一对一、一对关联查询吗?...答:能,Mybatis不仅可以执行一对一、一对关联查询,还可以执行对一,关联查询,对一查询,其实就是一对一查询,只需要把selectOne()修改为selectList()即可;查询...其去重复原理是标签内子标签,指定了唯一确定一条记录id列,Mybatis根据列值来完成100条记录去重复功能,可以有多个,代表了联合主键语意。...答:Mybatis支持association关联对象和collection关联集合对象延迟加载,association指就是一对一,collection指就是一对查询。...它与全自动区别在哪里? 答:Hibernate属于全自动ORM映射工具,使用Hibernate查询关联对象或者关联集合对象时,可以根据对象关系模型直接获取,所以它是全自动

3.1K20

【39期】Mybatis面试18问,你想知道都在这里了!

有了列名与属性名映射关系后,Mybatis通过反射创建对象,同时使用反射给对象属性逐一赋值并返回,那些找不到映射关系属性,是无法完成赋值。 9、Mybatis能执行一对一、一对关联查询吗?...答:能,Mybatis不仅可以执行一对一、一对关联查询,还可以执行对一,关联查询,对一查询,其实就是一对一查询,只需要把selectOne()修改为selectList()即可;查询...其去重复原理是标签内子标签,指定了唯一确定一条记录id列,Mybatis根据列值来完成100条记录去重复功能,可以有多个,代表了联合主键语意。...答:Mybatis支持association关联对象和collection关联集合对象延迟加载,association指就是一对一,collection指就是一对查询。...它与全自动区别在哪里? 答:Hibernate属于全自动ORM映射工具,使用Hibernate查询关联对象或者关联集合对象时,可以根据对象关系模型直接获取,所以它是全自动

1.3K21

Java面试题 - 03前言:三、框架篇:

向 sql 语句传参数麻烦,因为 sql 语句 where 条件不一定,可能也可能少,占位符需要和参数一一对应。 mybatis解决: Mybatis自动将java对象映射至sql语句。...答:Mybatis支持association关联对象和collection关联集合对象延迟加载,association指就是一对一,collection指就是一对查询。...答:步骤如下: 加载 hibernate 配置文件,读取其他配置文件(jdbc.properties、表与对象关系映射文件); 创建 SessionFactory 会话工厂; 打开 session 获取连接...不处于session管理,数据库中有对应记录;调用update方法后又变成持久态。 3. 你知道hibernate缓存吗?...答:使用缓存目的就是减少对数据库访问次数,以提高hibernate执行效率。

1K10

2020年,MyBatis常见面试题总结

答:能,Mybatis 不仅可以执行一对一、一对关联查询,还可以执行对一,关联查询,对一查询,其实就是一对一查询,只需要把 selectOne()修改为 selectList()即可;查询...其去重复原理是标签内子标签,指定了唯一确定一条记录 id 列,Mybatis 根据列值来完成 100 条记录去重复功能,可以有多个,代表了联合主键语意。...答:Mybatis 支持 association 关联对象和 collection 关联集合对象延迟加载,association 指就是一对一,collection 指就是一对查询。...它与全自动区别在哪里? 注:我出 答:Hibernate 属于全自动 ORM 映射工具,使用 Hibernate 查询关联对象或者关联集合对象时,可以根据对象关系模型直接获取,所以它是全自动。...面试题看似都很简单,但是想要能正确回答上来,必定是研究过源码且深入的人,而不是会使用的人或者用很熟的人,以上所有面试题及其答案所涉及内容,在我 Mybatis 系列博客中都有详细讲解和原理分析。

83210

旧调重弹Hibernate与Ibatis区别——深入架构设计

iBATIS某些特性使得它能够非常高效地处理大型数据集。iBATIS支持行处理器(row handler)使得它能够批处理超大型记录集,一次一条记录。...iBATIS也支持只获取某个范围内结果,这就使得你可以只获取那些你当前亟需数据。例如,假设你获取了10,000条记录,而你其实只需要其中第500至600条,那你就可以简单获取这些记录。...无非就是: 编写配置文档 hibernate.cfg.xml或SqlMapConfig.xml: 穿件对象—关系映射文件, 编写实体类(每一个实体类都是和数据库中一张表是一一对,设计遵循:javabean...:数据库连接URL,如果用是SQLServer JDBC Driver,需要在url后追加SelectMethod=Cursor以获得JDBC事务Statement支持; JDBC.Username... (Account account) throws SQLException {     sqlMapper.insert("insertAccount", account);   }   //更新一条记录

57440

quarkus数据库篇之四:本地缓存

city:每一条记录是一个城市 country:每一条记录是一个国家 country-cities:每一条记录是一个城市和国家关系 然后,咱们要写出city和country增删改查代码,另外city...和country是一对关系,这里涉及到关联查询 最后,全部用单元测试来对比添加缓存前后查询接口执行时间,以此验证缓存生效 开发-实体类 city表实体类是City.java,和前面几篇文章中实体类没啥区别...显然前者才是正确,这就需要单元测试来保证正确性了 @QuarkusTest @TestMethodOrder(MethodOrderer.OrderAnnotation.class) public class...", Boolean.TRUE); 一对多关联查询缓存 country和city是一对关系,查询Country记录时候,与其关联city表记录也会被查询出来,填入Country对象cities...接下来,就是本篇第三个重点:设置一对多关联查询缓存,设置方法如下图红框所示 再次执行方法testCacheOne2Many,效果如下图红框所示,1秒完成,缓存已生效 最后还要做件事情,就是完整运行单元测试类

63020

Hibernate学习笔记2

Hibernate常用API-Session补充 4.Hibernate关联映射-数据对象三种关系介绍 4.1. 一对一 4.2. 一对(对一) 4.3. 5....Hibernate关联映射-一对 5.1. 实体类创建 5.2. Hbm映射文件编写 5.3. 测试保存 5.4. 测试单向关联保存 5.5. 双向关联维护 5.6. 对象导航 5.7....持久化类类三种状态介绍 1.瞬时态:也叫做临时态或自由态,它一般指我们new出来对象,它不存在OID,与hibernate session无关联,在数据库中也无记录。...4.Hibernate关联映射-数据对象三种关系介绍 Hibernate框架基于ORM设计思想,它将关系型数据库中表与我们java中类进行映射,一个对象就对应着表中一条记录,而表中字段对应着类中属性...一对(对一) 客户与订单之间一对多关系(对一) 建表原则:在一方添加外键来描述关联关系 ?

1.4K40

过年没有回老家,在出租屋里整理了一些思维导图

查询时, 在未使用limit 1情况下, 在匹配到一条数据后, 唯一索引即返回, 普通索引会继续匹配下一条数据, 发现不匹配后返回....对于写读少情况, 普通索引利用change buffer有效减少了对磁盘访问次数, 因此普通索引性能要高于唯一索引. 5. 订单表数据量越来越大导致查询缓慢, 如何处理 分库分表....订单ID最好包含时间(如根据雪花算法生成), 此时既能根据订单ID直接获取到订单记录, 也能按照时间进行查询. Mybatis部分: 1.Mybatis是否支持延迟加载?...Mybatis支持association关联对象和collection关联集合对象延迟加载,association指就是 一对一,collection指就是一对查询。...这就是延迟加载基本原理。 当然了,不光是Mybatis,几乎所有的包括Hibernate,支持延迟加载原理都是一样

24310

hibernate笔记加强版「建议收藏」

hibernate会自己主动从当前数据库中查询出最大主键。然后再在此主键上加1。设置成下一条记录主键 此种方式是在数据库中查询出最大主键然后加1。...第一个是持久化类字节码对象,第二个參数是主键 此方法相当于用主键查询出表中一条记录。...(); session.close(); } } 33、 一对双向关联 一对双向关联是在一对单向关联基础上建立起来。...所以操作多对关系都是在操作第三张表; 如: 解除关系 把第三张表一行数据删除掉 建立关系 在第三张表中添加一条记录就可以 变更关系 在第三张表中,先解除如今对象关系。...query对象中有一个uniqueResult()方法,当返回结果仅仅有一条记录时,能够用此方法.但假设返回结果有多条记录,用此方法会抛异常。 41、 一对 1.

87720
领券