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属性和配置文件加入依赖性(协作对象) 。然后可以很容易地在需要时替换具有类似接口的协作对象。
老薛主机,虽然是第一次分享这个商家的信息,但是这个商家实际上也有存在有一些年头。看到商家有在进行夏季促销,比如我们很多网友可能有需要的香港VPS主机季度及以上可以半价优惠,如果有在选择不同主机商的香港机房的可以看看老薛主机商家的香港VPS。如果没有记错的话,早年这个商家是主营个人网站虚拟主机业务的,还算不错在异常激烈的市场中生存到现在,应该算是在众多商家中早期积累到一定的用户群的,主打小众个人网站...
HostYun是一家成立于2008年的VPS主机品牌,原主机分享组织(hostshare.cn),商家以提供低端廉价VPS产品而广为人知,是小成本投入学习练手首选,主要提供基于XEN和KVM架构VPS主机,数据中心包括中国香港、日本、德国、韩国和美国的多个地区,大部分机房为国内直连或者CN2等优质线路。本月商家全场9折优惠码仍然有效,以KVM架构产品为例,优惠后韩国VPS月付13.5元起,日本东京...
totyun,新公司,主要运作香港vps、日本vps业务,接入cn2网络,不限制流量!VPS基于KVM虚拟,采用系统盘和数据盘分离,从4G内存开始支持Windows系统...大家注意下,网络分“Premium China”、“Global”,由于站长尚未测试,所以也还不清楚情况,有喜欢吃螃蟹的尝试过不妨告诉下站长。官方网站:https://totyun.com一次性5折优惠码:X4QTYVNB3P...