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属性和配置文件加入依赖性(协作对象) 。然后可以很容易地在需要时替换具有类似接口的协作对象。
2021年6月底,raksmart开发出来的新产品“cloud-云服务器”正式上线对外售卖,当前只有美国硅谷机房(或许以后会有其他数据中心加入)可供选择。或许你会问raksmart云服务器怎么样啊、raksm云服务器好不好、网络速度快不好之类的废话(不实测的话),本着主机测评趟雷、大家受益的原则,先开一个给大家测评一下!官方网站:https://www.raksmart.com云服务器的说明:底层...
简介华圣云 HuaSaint是阿里云国际版一级分销商(诚招募二级代理),专业为全球企业客户与个人开发者提供阿里云国际版开户注册、认证、充值等服务,通过HuaSaint开通阿里云国际版只需要一个邮箱,不需要PayPal信用卡,不需要买海外电话卡,绝对的零门槛,零风险官方网站:www.huasaint.com企业名:huaSaint Tech Limited阿里云国际版都有什么优势?阿里云国际版的产品...
diyvm怎么样?diyvm商家VPS主机均2GB内存起步,三个地区机房可选,使用优惠码后每月69元起;DiyVM独立服务器开设在香港沙田电信机房,CN2线路,5M带宽,自动化开通上架,最低499元/月,配置是L5630*2/16G内存/120G SSD硬盘。DiyVM是一家成立于2009年的国人主机商,提供的产品包括VPS主机、独立服务器租用等,产品数据中心包括中国香港、日本大阪和美国洛杉矶等,...