Hibernate工作原理及为什么要用
原理
1 .读取并解析配置文件
2. 读取并解析映射信息创建SessionFactory
3.打开Sesssion
4.创建事务Transation
5.持久化操作
6.提交事务
7.关闭Session
8.关闭SesstionFactory
为什么要用
1 .对JDBC访问数据库的代码做了封装大大简化了数据访问层繁琐的重复性代码。
2. Hibernate是一个基于JDBC的主流持久化框架是一个优秀的ORM实现。他很大程度的简化DAO层的编码工作
3. hibernate使用Java反射机制而不是字节码增强程序来实现透明性。
4. hibernate的性能非常好 因为它是个轻量级框架。映射的灵活性很出色。它支持各种关系数据库从一对一到多对多的各种复杂关系。
2 Hibernate是如何延迟加载?
1. Hibernate2延迟加载实现 a)实体对象b)集合(Col lection)
2. Hibernate3提供了属性的延迟加载功能
当Hibernate在查询数据的时候数据并没有存在与内存中当程序真正对数据的操作时 对象才存在与内存中 就实现了延迟加载 他节省了服务器的内存开销 从而提高了服务器的性能。
3 Hibernate中怎样实现类之间的关系?(如一对多、多对多的关系 )
类与类之间的关系主要体现在表与表之间的关系进行操作 它们都市对对象进行操作 我们程序中把所有的表与类都映射在一起它们通过配置文件中的 many-to-one、 one-to-many、many-to-many、
4 说下Hibernate的缓存机制
1 . 内部缓存存在Hibernate中又叫一级缓存属于应用事物级缓存
2.二级缓存a)应用及缓存b)分布式缓存
条件数据不会被第三方修改、数据大小在可接受范围、数据更新频率低、同一数据被系统频繁使用、非关键数据c)第三方缓存的实现
5 Hibernate的查询方式
Sql 、 Criteria,object comptosition
Hql
1 、 属性查询
2、 参数查询、命名参数查询
3、 关联查询
4、 分页查询
5、 统计函数
6 如何优化Hibernate
1 .使用双向一对多关联不使用单向一对多
2.灵活使用单向一对多关联
3.不用一对一用多对一取代
4.配置对象缓存不使用集合缓存
5•—对多集合使用 Bag,多对多集合使用Set
6.继承类使用显式多态
7.表字段要少表关联不要怕多有二级缓存撑腰
7 Struts工作机制为什么要使用 Struts
工作机制
Struts的工作流程:
在web应用启动时就会加载初始化ActionServlet,ActionServlet从struts-config.xml文件中读取配置信息,把它们存放到各种配置对象当Action Servlet接收到一个客户请求时 ,将执行如下流程.-(1)检索和用户请求匹配的 ActionMapping实例,如果不存在,就返回请求路径无效信息 ;-(2)如果ActionForm实例不存在,就创建一个ActionForm对象,把客户提交的表单数据保存到ActionForm对象中;
-(3)根据配置信息决定是否需要表单验证 .如果需要验证,就调用ActionForm的val idate()方法;
-(4)如果ActionForm的val idate()方法返回nul l或返回一个不包含ActionMessage的ActuibErrors对象,就表示表单验证成功;
-(5)ActionServlet根据Actio nMapp i ng所包含的映射信息决定将请求转发给哪个Actio n,如果相应的Actio n实例不存在 就先创建这个实例 然后调用Actio n的exec ute。方法
-(6)Action的exec ute()方法返回一个Actio nF orward对象,Action Servlet在把客户请求转发给Actio nForward对象指向的JS P组件
-(7)ActionForward对象指向JS P组件生成动态网页返回给客户
为什么要用
JSP、 Servlet、 JavaBean技术的出现给我们构建强大的企业应用系统提供了可能。但用这些
技术构建的系统非常的繁乱 所以在此之上 我们需要一个规则、 一个把这些技术组织起来的规则这就是框架 Struts便应运而生。
基于Struts开发的应用由3类组件构成控制器组件、模型组件、视图组件
8 Struts的val idate框架是如何验证的
在struts配置文件中配置具体的错误提示再在FormBean中的val idate()方法具体调用。
9 说下Struts的设计模式
MVC模式:web应用程序启动时就会加载并初始化ActionServler 。用户提交表单时 一个配置好的ActionForm对象被创建 并被填入表单相应的数据 ActionServler根据Struts-config.xml文件配置好的设置决定是否需要表单验证如果需要就调用ActionForm的
Val id ate()验证后选择将请求发送到哪个 Actio n如果Actio n不存在 Actio nServlet会先创建这个对象然后调用 Actio n的execute()方法。 Execute()从ActionForm对象中获
取数据完成业务逻辑返回一个Act io n Fo rwa rd对象 Act io n Se rvlet再把客户请求转发给Actio nForward对象指定的jsp组件 Action Forward对象指定的jsp生成动态的网页返回给客户。
10 spring工作机制及为什么要用?
1 . spring mvc请所有的请求都提交给 DispatcherServlet,它会委托应用系统的其他模块负责负责对请求进行真正的处理工作。
2. DispatcherServlet查询一个或多个HandlerMapping,找到处理请求的Control ler.
3. DispatcherServlet请请求提交到目标Control ler
4. Control ler进行业务逻辑处理后会返回一个ModelAndView
5. Dispathcher查询一个或多个ViewResolver视图解析器,找到ModelAndView对象指定的视图对象
6.视图对象负责渲染返回给客户端。
为什么用
{AO P让开发人员可以创建非行为性的关注点 称为横切关注点 并将它们插入到应用程序代码中。使用AO P后公共服务(比如日志、持久性、事务等)就可以分解成方面并应用到域对象上 同时不会增加域对象的对象模型的复杂性。
IOC允许创建一个可以构造对象的应用环境 然后向这些对象传递它们的协作对象。 正如单词倒置所表明的 IOC就像反过来的JNDI 。没有使用一堆抽象工厂、服务定位器、单元素(singleton)和直接构造(straight construction)每一个对象都是用其协作对象构造的。因此是由容器管理协作对象(col laborator ) 。
Spring即使一个AOP框架也是一IOC容器。 Spring最好的地方是它有助于您替换对象。有了Spring,只要用JavaBean属性和配置文件加入依赖性(协作对象) 。然后可以很容易地在需要时替换具有类似接口的协作对象。
ProfitServer已开启了黑色星期五的促销活动,一直到本月底,商家新加坡、荷兰、德国和西班牙机房VPS直接5折,无码直购最低每月2.88美元起,不限制流量,提供IPv4+IPv6。这是一家始于2003年的俄罗斯主机商,提供虚拟主机、VPS、独立服务器、SSL证书、域名等产品,可选数据中心包括俄罗斯、法国、荷兰、美国、新加坡、拉脱维亚、捷克、保加利亚等多个国家和地区。我们随便以一个数据中心为例...
国庆钜惠 最低5折起 限量促销CYUN专注海外精品服务器资源,主营香港CN2 GIA、美国CERA、美国高防服务器资源,实体公司,ISP/IDC资质齐全,客服配备齐全。本次针对国庆推出非常给力的促销活动,旗下所有平台同享,新老客户同享,限时限量,售完截止。活动截止时间:2021年10月9日官网地址:www.cyun.net参与机型:香港CN2 GIA云服务器、香港双程CN2云服...
腾讯云双十一活动已于今天正式开启了,多重优惠享不停,首购服务器低至0.4折,比如1C2G5M轻量应用服务器仅48元/年起,2C4G8M也仅70元/年起;个人及企业用户还可以一键领取3500-7000元满减券,用于支付新购、续费、升级等各项账单;企业用户还可以以首年1年的价格注册.COM域名。活动页面:https://cloud.tencent.com/act/double11我们分享的信息仍然以秒...