题目1
:Hibernate
工作原理及为什么要用?
原理
:
hibernate
,通过对
jdbc
进行封装,对
java
类和
关系数据库进行
mapping
,实现了对关系数据库的面向对象方式的操作,改变了传统的
jdbc + sql
操作数据的方式,从而使开发人员可以话更多精力进行对象方面的开发
1.
读取并解析配置文件
2.
读取并解析映射信息,创建SessionFactory
3.
打开Sesssion
4.
创建事务Transation
5.
持久化操作
6.
提交事务
7.
关闭Session
8.
关闭SesstionFactory
为什么要用:
1.
对JDBC
访问数据库的代码做了封装,大大简化了数据访问层繁琐的重复性代码。
2.
Hibernate
是一个基于JDBC
的主流持久化框架,是一个优秀的ORM
实现。他很大程度的简化DAO
层的编码工作
3.
hibernate
的性能非常好,因为它是个轻量级框架。映射的灵活性很出色。它支持各种关系数据库,从一对一到多对多的各种复杂关系。
题目2
: 什么是Hibernate
延迟加载?
延迟加载 机制是为了避免一些无谓的性能开销而提出来的,所谓延迟加载就是当在真正需要数据的时候,才真正执行数据加载操作。在Hibernate 中提供了对实体对象的延迟加载以及对集合的延迟加载,另外在Hibernate3 中还提供了对属性的延迟加载。
题目3
:Hibernate
中类之间的关联关系有几种?(
如: 一对多、多对多的关系)
many-to-one
、one-to-many
、many-to-many
、 one-to-one
题目4
: 说下Hibernate
的缓存机制
一、hibernate
一级缓存
(1
)hibernate
支 持两个级别的缓存,默认只支持一级缓存;
(2
)每个Session
内 部自带一个一级缓存;
(3
)某个Session
被 关闭时,其对应的一级缓存自动清除;
二、hibernate
二级缓存
(1)
二级缓存独立于session
,默认不开启;
题目5
: Hibernate
的查询方式
本地
SQL
查询
、Criteria
、Hql
题目6
: 如何优化Hibernate
?
1.
使用双向一对多关联,不使用单向一对多
2.
不用一对一,用多对一取代
3.
配置对象缓存,不使用集合缓存
题目7
: Struts
工作机制?为什么要使用Struts
?
工作机制:
Struts
的工作流程:
在web
应用启动时就会加载初始化ActionServlet,ActionServlet
从
struts-config.xml
文件中读取配置信息,
把它们存放到各种配置对象
当ActionServlet
接收到一个客户请求时,
将执行如下流程.
-(1)
检索和用户请求匹配的ActionMapping
实例,
如果不存在就返回请求路径无效信息;
-(2)
如果ActionForm
实例不存在,
就 创建一个ActionForm
对象,
把客户 提交的表单数据保存到ActionForm
对象中;
-(3)
根据配置信息决定是否需要表单验证.
如果需要验证,
就调用ActionForm
的validate()
方法;
-(4)
如果ActionForm
的validate()
方 法返回null
或返回一个不包含ActionMessage
的ActuibErrors
对象,
就表示表单验证成功;
-(5)ActionServlet
根据ActionMapping
所包含的映射信息决定将请求转发给哪个Action,
如果相应的
Action
实例不存在,
就先创建这个实例,
然后调用Action
的execute()
方法;
-(6)Action
的execute()
方法返回一个ActionForward
对 象,ActionServlet
在把客户请求转发给 ActionForward
对象指向的JSP
组件;
-(7)ActionForward
对象指向JSP
组件生成动态网页,
返 回给客户;
为什么要用:
1.
JSP
、Servlet
、JavaBean
技术的出现给我们构建强大的企业应用系统提供了可能。但用这些技术构建的系统非常的繁乱。
2.
基于Struts
开发的应用:
不用再考虑公共问题
专心在业务实现上
结构统一,易于学习、维护
新手也可写出好程序