欢迎来到天天文库
浏览记录
ID:37318113
大小:181.00 KB
页数:8页
时间:2019-05-21
《SSH面试题总结》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、Spring,hibernate,struts的面试笔试题(含答案)Hibernate的相关试题:1、Hibernate的工作原理?hibernate的初始化读取hibernate的配置信息,创建SessionFactory。A、创建Configeration的实例。它的构造方法:将配置文件信息(hibernate-config.xml)读入到内存。一个Configeration实例代表java类到sql数据库映射的集合。B、创建SessionFactory实例。把Configeration的所有配置信息拷贝到Ses
2、sionFactory的缓存中。SessionFactory是实例代表一个数据库的存储源,创建后不再与Configeration有关联。C、调用SessionFactory创建Session方法。1)、用户自行创建JDBC连接。Connectioncon=dataSource.getConnection();Sessions=SessionFactory.openSession(con);2)、让SessionFactory提供连接Sessions=sessionFactory.openSession();D、通过S
3、ession接口提供的各种方法类访问数据库。原理:1.读取并解析配置文件2.读取并解析映射信息,创建SessionFactory3.打开Sesssion4.创建事务Transation5.持久化操作6.提交事务7.关闭Session8.关闭SesstionFactory2、Hibernate的缓存体系一级缓存:Session有一个内置的缓存,其中存放了被当前工作单元加载的对象。每个Session都有自己独立的缓存,且只能被当前工作单元访问。二级缓存:SessionFactory的外置的可插拔的缓存插件。其中的数据可被
4、多个Session共享访问。SessionFactory的内置缓存:存放了映射元数据,预定义的Sql语句。3、Hibernate中Java对象的状态A、临时状态(transient)特征:1】不处于Session缓存中2】数据库中没有对象记录Java如何进入临时状态1】通过new语句刚创建一个对象时2】当调用Session的delete()方法,从Session缓存中删除一个对象时。B、.持久化状态(persisted)特征:1】处于Session缓存中2】持久化对象数据库中设有对象记录3】Session在特定时刻会
5、保持二者同步Java如何进入持久化状态1】Session的save()把临时-》持久化状态2】Session的load(),get()方法返回的对象3】Session的find()返回的list集合中存放的对象4】Session的update(),saveOrupdate()使游离-》持久化C、.游离状态(detached)特征:1】不再位于Session缓存中2】游离对象由持久化状态转变而来,数据库中可能还有对应记录。Java如何进入持久化状态-》游离状态1】Session的close()方法2】Session的e
6、vict()方法,从缓存中删除一个对象。提高性能。少用。4、为什么要用hibernate?1.对JDBC访问数据库的代码做了封装,大大简化了数据访问层繁琐的重复性代码。2.Hibernate是一个基于JDBC的主流持久化框架,是一个优秀的ORM实现。他很大程度的简化DAO层的编码工作3.hibernate使用Java反射机制,而不是字节码增强程序来实现透明性。4.hibernate的性能非常好,因为它是个轻量级框架。映射的灵活性很出色。它支持各种关系数据库,从一对一到多对多的各种复杂关系。5、Hibernate3提供
7、了属性的延迟加载功能当Hibernate在查询数据的时候,数据并没有存在与内存中,当程序真正对数据的操作时,对象才存在与内存中,就实现了延迟加载,他节省了服务器的内存开销,从而提高了服务器的性能。6、Hibernate中怎样实现类之间的关系?(如:一对多、多对多的关系)类与类之间的关系主要体系在表与表之间的关系进行操作,他们都是对对象进行操作,我们程序中把所有类与表映射到一起,他们通过配置文件中的mang-to-one、one-to-many、many-to-many实现。7、.Hibernate的查询方式Sql、C
8、riteria,objectcomptositionHql:1、属性查询2、参数查询、命名参数查询3、关联查询4、分页查询5、统计函数8、如何优化Hibernate?1.使用双向一对多关联,不使用单向一对多2.灵活使用单向一对多关联3.不用一对一,用多对一取代4.配置对象缓存,不使用集合缓存5.一对多集合使用Bag,多对多集合使用Set6.继承
此文档下载收益归作者所有