`
minijack
  • 浏览: 22513 次
  • 性别: Icon_minigender_1
  • 来自: 江苏泰州
最近访客 更多访客>>
社区版块
存档分类
最新评论

Java面试之hibernate

阅读更多

Java面试之hibernate


Hibernate之我见:

Hibernate的核心思想就是ORM了,即对象到关系的映射。也就是将数据表中的数据表映射为对象,同时通过hibernate也能够把对象自动持久化到关系数据库中。hibernate主要就是充当业务逻辑层与数据库层之间的一个桥梁作用。也是对jdbc思想的一个实现吧。
具体的来说:个人觉得hibernate干了两个事情。
1. 就是hibernate将传统的MVC中的业务逻辑层进一步的进行分层。单独分出了持久化层负责数据的持久化操作。
2. Hibernate 封装了数据库的访问细节,并且维护着实体类与数据库之间的映射关系。使得业务处理程序通过Hibernate API可以进行数据库操作。

Hibernate执行流程:
大体上分为两个部分:
1. Session对象的创建。hibernate通过Configuration类的configure方法加载Hibernate配置信息,默认加载hibernate.cfg.xml文件。加载完毕后通过configuration类的buildSessionFactory方法创建SessionFactory对象。SessionFactory是一个生产session对象的工厂。当需要session对象时从此工厂中获取即可。
2. Session对象对数据进行增删改查的操作。Hibernate框架对JDBC作了轻量级的封装,使用hibernate对数据进行操作时,不需要再写繁琐的JDBC代码,完全面向对象的思维模式,其中还加入了对事务的控制。流程如:
A. 或许session对象
B. 开启事务
C. 数据操作  有异常  回滚事务  没有下一步
D. 提交事务
E. 关闭session对象

Hibernate缓存以及延迟加载

Hibernate中缓存分为两种:Session缓存和SessionFactory缓存。详见:
1. Session缓存(一级缓存)
Session级的缓存,生命周期很短,与session对应。调用session的load,get,save等方法时,hibernate会对实体对象进行缓存;当在同一个session中时再次调用时,hibernate会首先到缓存中查询,找到直接使用。就就不需要发出sql语句到数据库查询。

2. SessionFactory缓存(二级缓存)
二级缓存是sessionFactory级的缓存,生命周期与sessionFactory对应,可以在多个session之间共享。Hibernate中二级缓存需要使用相关的插件。需要进行配置。记不太清了。就是需要把使用二级缓存的属性设置为true。一般的对不是经常更新的数据进行二级缓存,如:热点新闻。 如果经常变化的话,使用二级缓存就得不偿失了。

3. Hibernate的延迟加载策略(get和load的区别)
Hibernate通过代理机制实现了延迟加载技术。也就是使用延迟加载的对象,在获取对象的时候返回的是对象的代理,并不是对象的真正引用,只有在对象真正被调用的时候,hibernate才会对其进行查询,返回真正的对象。

Hibernate的关系映射问题

1. 关联关系映射
多对一单向:

<many-to-one> 标签使用在多的一端,并使用<column >name属性一的一端的主键标识。


多对一双向:
                  多的一端没有变化,一的一端需要映射文件需要使用<set>标签进行映射。

               <set name=”books”>
		<key culume=”categoryId”>
		<ont-to-many class=”Book”>
	</set>


一对一主键关联:

                       User文件中:  <one-to-one name=”idCard”>    
                       idCare文件中:<one-to-one name=”user” constrained=”true”>
                       //constrained属性用于建立一个约束。


一对一外键关联: 

                    User文件中:<many-to-one name=”idCard” unique=”true”>


多对多关联映射: 
                 需要借助第三张表。持久化类中分别加上了set集合。

                 持久化配置文件为:
  

<set name=”course” table=”tb_studeng_course”>
				<key column=”studentId”></key>
				<many-to-many class=”Course” column=”courseId”>
			</set>
			//table用于指定第三张表。另外一张表同理。


2. 级联操作
级联操作通过cascade属性来实现。属性值可选值:none,save-update,delete,all。

3. 继承映射
有三种方法:
1. 映射成一张表
2. 每个子类映射成一张表
3. 每个具体类映射成一张表

Hibernate的hql语句查询

这块涉及到暑假库的知识,看着就闹心。数据库是一块永远的痛啊! 等以后心情好了,再看吧!


 

分享到:
评论

相关推荐

    java面试题大全 初级程序员面试 Hibernate Struts

    Java程序员面试三十二问.doc Java经典试题及答案.doc java面试笔试题大汇总.doc 企业面试题精选.doc 9JAVA代码查错.doc jdbc.doc Struts.doc Hibernate?.doc

    最新Java面试题视频网盘,Java面试题84集、java面试专属及面试必问课程

    │ Java面试题56.ibatis和hibernate有什么不同.mp4 │ Java面试题57.hibernate对象状态及其转换.mp4 │ Java面试题58:hibernate的缓存.mp4 │ Java面试题59.webservice的使用场景.mp4 │ Java面试题60.Activiti的...

    java面试宝典2018版

    《Java面试宝典2018版》是针对Java开发者准备面试的重要参考资料,它涵盖了Java编程语言、Java虚拟机(JVM)、并发编程、框架、设计模式等多个关键领域的重要知识点。这本书旨在帮助Java程序员深入理解技术原理,...

    java面试题,J2EE面试题 笔试题

    最全的j2EE面试题,题量...8、java面试题及答案 9、java面试题编程篇 10、Oracle面试题 11、Oracle企业面试题集锦 12、Spring面试题 13、SSH面试题 14、Strut+Spring+Hibernate面试题 15、张孝祥整理Java就业面试题大全

    JAVA面试宝典.pdf

    《JAVA面试宝典》是一本全面涵盖Java技术体系和求职面试知识的指南,旨在帮助Java开发者准备面试,提升技能。本书共分为十章,从基础知识到框架应用,再到项目实战和面试题解析,覆盖了Java开发者的必备技能。 第一...

    android和java面试大全集

    史上最全的android和java面试文档集。包括有: java程序员面试宝典.txt Java面试宝典2011版-1C,Java基础部分.doc 三大框架面试题.zip 技术面试题.zip Android笔试题库 C语言终极面试宝典.doc Java笔试题目汇总.pdf ...

    java面试题总结资料

    在准备Java面试时,了解关键概念和技术是至关重要的。这份"java面试题总结资料"涵盖了多个Java核心领域的关键知识点,包括但不限于: 1. **基础语法**:理解基本的数据类型(如整型、浮点型、字符型和布尔型),...

    java面试评价表

    ### Java面试评价表知识点梳理 #### 一、Java基础知识 - **语法基础**:考查面试者对于Java语言的基础语法掌握程度,例如变量声明、数据类型转换、运算符使用等。 - **算法基础**:评估面试者对常见算法的理解,...

    最全java面试题及答案(208道).pdf

    本文总结了Java面试题及答案,涵盖了Java基础、容器、多线程、反射、对象拷贝、JavaWeb、异常、网络、设计模式、Spring/Spring MVC、Spring Boot/SpringCloud、Hibernate、MyBatis、RabbitMQ、Kafka、Zookeeper、...

    JAVA面试问题,自己和别人总结

    JAVA面试问题总结 JAVA是一种广泛应用的编程语言,作为一名JAVA开发者,需要具备扎实的基础知识和实践经验。本文总结了常见的JAVA面试问题,涵盖了JAVA基础、JSP、Servlet、XML、J2EE、MVC、数据库等方面的知识点。...

    java最新面试题 hibernate,struts,sql,java,spring

    在IT行业中,尤其是在Java开发领域,面试题常常围绕着核心技术和框架进行,如Hibernate、Struts、SQL、Java和Spring。这些技术是构建J2EE应用程序的基础,它们各自扮演着重要的角色。 首先,让我们深入了解一下Java...

    日语java面试问题集

    【标题】:“日语java面试问题集”揭示了在针对日本客户的Java外包项目中,面试者可能遇到的技术和语言双重要求。这类面试通常旨在测试应聘者的Java编程基础、问题解决能力,以及与日本客户沟通的技能。 【描述】:...

    Java面试题大全(整理版)1000+面试题 (面试准备+Java基础+高级特性+常见问题+答案解析)

    总的来说,准备Java面试时,你需要深入理解这些技术的原理、应用场景和最佳实践,结合实际项目经验进行回答,才能在面试中展现出专业水平。通过这份1000+面试题的资源,你可以系统地复习并测试自己的知识深度,提升...

    java面试中遇到的问题

    Java 面试中遇到的问题 Java 面试中常设计到的问题,以下是对标题和描述中所说的知识点的详细说明: Core Java * 线程:Java 中的线程是通过 Thread 类或 Runnable 接口来实现的。线程的生命周期包括新建、就绪、...

    Java面试题库,java面试题

    Java面试是每位求职者在进入IT行业,尤其是Java开发领域时必须经历的重要环节。这份"Java面试题库"包含了丰富的知识点,旨在帮助求职者更好地准备面试,提高成功几率。以下是一些关键的Java编程和面试相关知识点的...

    Java程序员面试宝典,Java面试必备PDF文件

    这份PDF文件包含了122道精心挑选的Java面试题目,旨在全面覆盖Java编程语言的核心概念、框架、设计模式以及最佳实践。以下是对这份宝典中可能涵盖的知识点的详细解析: 1. **Java基础**:这部分可能会涉及Java的...

    JAVA面试大全,适合2年以内工作者

    这份"JAVA面试大全"包含了丰富的知识点,旨在帮助初、中级开发者巩固基础,提升技能,并在面试中表现出色。 首先,Java基础是面试中的常见考点。这包括对Java语法的理解,如类、对象、封装、继承、多态等面向对象...

    Java面试简历项目及模板

    下面将详细讨论如何构建一个突出的Java面试简历以及如何展示项目经验。 首先,让我们从简历的结构和内容谈起。一个好的Java简历应该包括以下几个部分: 1. **基本信息**:姓名、联系方式、邮箱地址等,确保这些...

    Hibernate面试题专栏 - 最全的Hibernate面试题, Hibernate笔试题, Hibernate问题

    【标题】与【描述】提及的是“Hibernate面试题专栏”,主要涵盖了全面的Hibernate面试题、笔试题以及相关问题,这表明我们将要讨论的是Java领域中著名的对象关系映射框架——Hibernate的相关知识。Hibernate是一个...

    Java面试题2023最新版大合集(485页)

    Mybatis 可以使开发者更专注于 SQL 的编写,同时提供了强大的 XML 或注解方式来映射 SQL 语句,使得 SQL 与 Java 代码分离,提高开发效率。 2、Mybatis 的优点: - 灵活性高:允许开发者自由编写 SQL,适应各种复杂...

Global site tag (gtag.js) - Google Analytics