欢迎来到三一文库! | 帮助中心 三一文库31doc.com 一个上传文档投稿赚钱的网站
三一文库
全部分类
  • 研究报告>
  • 工作总结>
  • 合同范本>
  • 心得体会>
  • 工作报告>
  • 党团相关>
  • 幼儿/小学教育>
  • 高等教育>
  • 经济/贸易/财会>
  • 建筑/环境>
  • 金融/证券>
  • 医学/心理学>
  • ImageVerifierCode 换一换
    首页 三一文库 > 资源分类 > DOC文档下载  

    hibernate面试十大理论题.doc

    • 资源ID:7203754       资源大小:28.50KB        全文页数:4页
    • 资源格式: DOC        下载积分:2
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录   微博登录  
    二维码
    微信扫一扫登录
    下载资源需要2
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    hibernate面试十大理论题.doc

    Hibernate面试十大理论题1、 请简述hibernate开发程序的优势Hibernate是一个数据持久化框架,它封装了jdbc简化了对数据库的相关操作,它是一个ORM(对象-关系映射模型)的实现,使面向对象程序能够更好的操作关系型数据库,它提供了丰富的查询方式(hql,本地sql,criteria)和多种数据加载机制以及数据缓存机制,能够提高程序的性能,减少系统的开销。2、 简述hibernate环境的搭建1、 导入hibernate相关的jar包2、 然后配置hibernate.cfg.xml文件3、 编写相关的实体映射文件(类表)(属性列名)4、 将实体映射文件加入到hibernate.cfg.xml中3、 简述hibernate配置实体映射文件的内容根节点是hibernate-mapping,下面有class节点,class节点的name属性对应的是实体映射文件的路径,table属性是实体所对应的数据库表的表名。Class下面有id和property,id是配置数据库表中主键对应的类的属性,property是配置数据库表的其他列对应的类的属性,属性type是对应的类型,name对应是类的属性名。下面的column的属性name对应的是数据库的列名,id下面还有generator属性是主键的类型,其中常用的有assigned是自定义主键,identity是sql数据库自动生成,sequence是Oracle数据库自动生成,sequence还要配置param调用哪个序列。如果有多对一要配置<many-to-one></many-to-one>节点,一对多要配置<set></set>节点。4、 Hibernate的运行机制根据Java类和数据库表的映射关系配置,依赖Java的反射机制,xml解析技术和jdbc完成对象与数据库之间数据的转换操作,以及对象的关系操作,通过解析配置文件将发出的数据库操作指令转换成为相应的sql语句来完成操作。5、 请列举hibernate核心借口和类,以及作用和常用方法Hibernate的核心接口有:Configuration:配置并启动hibernate,它的configure()是读取映射信息到内存,buildSessionFactory方法是创建sessionFactory实例,把configuration对象包含的所有配置信息拷贝到sessionFactory缓存中。Sessionfactory:负责初始化hibernate,它的openSession方法是负责创建session对象。Session:负责执行持久化对象的CRUD操作,它的beginTransaction()方法是开始事务。它有save(保存),update(更新),delete(删除),get(查询),load(查询)等方法。Transaction:负责事务的相关操作。Query,SQLQuery,Criteria:负责执行各种数据库操作。它可以使用HQL语言或SQL语句两种表达方式。核心类restrictions,它为criteria查询提供约束条件。6、 Hibernate操作持久化数据的基本步骤1、 读取并解析配置文件Configuration cfg=new Configuration();2、 读取并解析映射信息,创建sessionFactory对象SessionFactory factory=cfg.buildSessionFactory();3、 得到sessionSession session=factory.openFactory();4、 开始事务(增删改必须,查可选)session.beginTransaction();5、 数据库操作Crud.6、 提交事务(回滚事务)session.getTransaction().commit();/ session.getTransaction().rollback();7、 关闭sessionsession.close();7、 使用3种方式查询A表中第5行到第10行的数据并按照C列排序Configuration cfg=new Configuration();SessionFactory factory=cfg.buildSessionFactory();Session session=factory.openFactory();trysession.beginTransaction();1、 String hql=”from A order by C”;Query query=session.createQuery(hql);Query.setFirstResult(5);Query.setMaxResult(5);List list=query.list();2、 String sql="select * from(select A.*,rownum r from A where rownum <= 10)t where t.r > 5 order by C"SQLQuery sqlQuery=session.createSQLQuery(sql).addEntity(A.class);List list=sqlQuery.list();3、 Criteria cri=session.CreateCriteria(A.class);cri.setFirstResult(5);cri.setMaxResults(5);cri.addOrder(Order.asc("C");List list=cri.list();Iterator iter=list.iterator();session.getTransaction().commit();catch(Exception ex)Ex.printStackTrace();session.getTransaction().rollback();finallysession.close();8、 Session的load和get方法,list和iterator方法的区别,并简述list和iterator方法使用的场合Load和get方法都是先从缓存中查找。不同的是load先创建代理对象,再根据条件去缓存查找,如果缓存中没有数据就去数据库查,数据在后面没有被使用也不会去查询数据库,支持延迟加载,没有符合条件的数据会抛出异常;get在缓存中没有找到就回去数据库查找,不管数据在后面有没有使用都会去查,如果没有找到相应的数据就返回null。List和iterator的区别在于:list查询是每次都将符合条件的数据全部查询出来,它不会从缓存中查询,而是直接查询数据库,不管数据在后面有没有使用都去查;iterator查询是查出符合条件的数据的id,先在缓存中根据id查找有没有符合条件的数据,如果没有则去数据库查找,而且数据在后面没有使用的时候不会去查询,而是在使用时再去查。List一般使用在需要全部数据的时候,iterator一般使用在不需要全部数据或者数据不是第一次查询的时候,这样能够提高程序性能,减少系统开销。9、 请简述hibernate的一级缓存和二级缓存,以及如何实现Hibernate的一级缓存是session级别的缓存,一级缓存是由hibernate本身管理,它不存在并发问题,也没用安全隐患。Hibernate的二级缓存是sessionFactory级别的缓存,Hibernate本身并没有提供二级缓存,它只提供了相应的接口,用户可以自行配置hibernate二级缓存。Hibernate二级缓存会出现并发问题引发脏读,数据过大会缓存到本地磁盘,存在安全隐患,一般很少使用hibernate二级缓存。使用二级缓存为避免脏读和安全隐患,可以设置缓存策略为事务型或者只读型。利用ehcache实现hibernate二级缓存,1、 导入相关的jar包(ehcahe.jar)2、 配置缓存框架(ehcache.xml)3、 配置hibernate<!配置缓存实现程序-> <property name="hibernate.cache.provider_class">org.hibernate.cache.EhCacheProvider</property><!- 启用查询缓存 -><property name="hibernate.cache.use_query_cache">true</property>4、 配置哪些使用二级缓存<cache usage="read-write" />Usage为缓存策略,可自行修改。read-write(读写),read-only(只读)10、 请简述inverse cascade lazy关键字的作用Inverse意为反转,它有true和false两个属性,在关联关系中可以设置,属性为true的一方不负责维护关系,属性为false的一方来维护关系,在多对一关系中一般将一这一方的inverse设置为true,有助于提高程序性能。Lazy是延迟加载,延迟加载是指在需要数据时才加载数据,它有类级别,关联级别和属性级别(hibernate3.0新增),lazy为true的时候是延迟加载,lazy为false的时候是不延迟加载。Cascade是级联操作,级联操作是在进行数据修改等操作时是否将与之相关的数据进行相应更改。属性设置为none的时候是不进行级联,属性为all的时候是对所有操作都进行级联,属性为save-update的时候是进行增加或更新是进行级联,属性为delete的时候是进行删除操作时级联。

    注意事项

    本文(hibernate面试十大理论题.doc)为本站会员(苏美尔)主动上传,三一文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    经营许可证编号:宁ICP备18001539号-1

    三一文库
    收起
    展开