hibernate+面试题大全

hibernate+面试题大全

ID:10657651

大小:63.00 KB

页数:8页

时间:2018-07-07

hibernate+面试题大全_第1页
hibernate+面试题大全_第2页
hibernate+面试题大全_第3页
hibernate+面试题大全_第4页
hibernate+面试题大全_第5页
资源描述:

《hibernate+面试题大全》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、Hibernate面试题大全1.请说出Hibernate中持久化对象的生命周期以及各种状态直接的区别,并描述相互之间是如何转换的。Hibernate中持久化对象的生命周期有临时态、持久态和游离态三种。处于临时态的对象主键值为空,并且未与session关联,数据未保存到数据库中处于持久态的对象与session关联起来,持久化后对象中的数据被保存到数据库中,并且主键值按照.hbm.xml文件中配置的生成方式生成相应的值处于游离态的对象脱离了session的管理,是持久化后的一种状态,主键值按照.hbm.xml文件中配置的生成方式生成相应的值当new一个新的对象时,该对象处于临时态当该对象被当作se

2、ssion的参数使用的时候,该对象处于持久态事务提交,session关闭后,该对象处于游离态2.Hibernate与数据库连接的实现?并解释了一下,例如文件是通过流来实现的!hibernate与数据库连接是通过什么实现的?Hibernate与数据库的连接是通过JDBC实现的3.Spring和Hibernate的事务管理方式有什么不同?hibernate的事务管理方式仅仅就是托管给JDBC(如果用JTA那么就是JTA),而JDBC的一切行为包括事务是基于一个connection的,那么hibernate委托给JDBC的事务也就是基于一个session。JTA与JDBC事务不同在于可以跨连接。sp

3、ring也是调用hibernate中事务管理的API。hibernate的事务管理,一般是编程性的。而委托给spring之后,可以使用声明式的,也就是可以在XML之中配置哪些需要进行事务管理,哪些不需要4.用Hibernate的session时要注意几点1.在更新数据时,要用open()2.使用完之后,要close(),这样连接池会回收该连接。5.说说在hibernate中使用Integer做映射和使用int做映射之间有什么差别使用int做映射,hibernate会自动把int类型转换为Integer类型,以便统一以对象方式处理数据。使用Integer就无须转换。在从数据库中取数据的时候,如果

4、是用Integer做的映射,则要求PO对象中对应的类型也必须为Integer类型,使用的时候需要转换为int。如果是int型,则无须转换。6.一个网站应用,请设计一个持久化类User,他可能有多张会员卡号、需要多个email地址(数量不定)作为其身份验证的方式设计三个类。User类、会员卡类和email类。User类与会员卡类和email类之间是一对多的关系1.请简单评价该设计的优劣:身份证号码作为一个person表的主键一个表的主键值设计最好不要采用具有业务含义的字段。理由有二:1.具有业务含义的字段的长度不固定2.具有业务含义的字段的取值范围不定。可能是纯数字,也可能是纯字符,或者是数字和

5、字符的混合情况。上述两个方面一但发生变动将不利于业务层的处理。2.Hibernate如何获取指定主键id的某对象,请举例,并进行可能的优劣比较三种方式:get(),load()和find()Get()和load()是先在缓存中查找对象,如果找不到再去数据库中查询;Find()是无论何时都在数据库中查询对象。三者比较起来Get()和load()的性能稍好一点3.请描述Hibernate中的缓存机制缓存是介于应用程序和物理数据源之间,其作用是为了降低应用程序对物理数据源访问的频次,从而提高了应用的运行性能。缓存内的数据是对物理数据源中的数据的复制,应用程序在运行时从缓存读写数据,在特定的时刻或事件

6、会同步缓存和物理数据源的数据。缓存的介质一般是内存,所以读写速度很快。但如果缓存中存放的数据量非常大时,也会用硬盘作为缓存介质。缓存的实现不仅仅要考虑存储的介质,还要考虑到管理缓存的并发访问和缓存数据的生命周期。Hibernate的缓存包括Session的缓存和SessionFactory的缓存,其中SessionFactory的缓存又可以分为两类:内置缓存和外置缓存。Session的缓存是内置的,不能被卸载,也被称为Hibernate的第一级缓存。Session的缓存是指Session的一些集合属性包含的数据。SessionFactory的内置缓存中存放了映射元数据和预定义SQL语句,映射元

7、数据是映射文件中数据的拷贝,而预定义SQL语句是在Hibernate初始化阶段根据映射元数据推导出来,SessionFactory的内置缓存是只读的,应用程序不能修改缓存中的映射元数据和预定义SQL语句,因此SessionFactory不需要进行内置缓存与映射文件的同步。SessionFactory的外置缓存是一个可配置的插件。在默认情况下,SessionFactory不会启用这个插件。外置缓存的

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。