javaWeb面试题(含答案).docx
10、Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进展了特别轻量级的对象封装,使得java程序员可以为所欲为的运用对象编程思维来操纵数据库。工作原理: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的性能好,映射的灵敏性比较精彩。它支持各种关系数据库,从一对一到多对多的各种困难关系。 11、hibernate的核心类是什么?重要方法是什么?Configuration、SessionFactory Session如下方法 Save、 load、 Update、Delete Query q=CreateQuery(“from Customer where customerName=:customerName) beginTransaction、close、Transaction、Commit() 12、session.load()和session.get()的区分Session.load/get方法均可以依据指定的实体类和id从数据库读取记录,并返回及之对应的实体对象。其区分在于:假设未能觉察符合条件的记录,get方法返回null,而load方法会抛出一个ObjectNotFoundException。 13、hql和sql的区分【可以这样说,hibernate是面对对象语言及关系型数据库之间的桥梁,他使得程序员可以不用关切底层数据库连接的代码,而可以用心写业务逻辑。】sql是面对数据库表查询hql是面对对象查询的,其form子句返回的是对象的实例。 14、hibernate及jdbc之间的区分【可以这样说,hibernate是面对对象语言及关系型数据库之间的桥梁,他使得程序员可以不用关切底层数据库连接的代码,而可以用心写业务逻辑。】Hibernate作为一个O/R Mapping,比JDBC具备的优势有:1.编程思想上,更加符合人的逻辑思维习惯,面对对象比面对过程更加简洁理解,测试和维护2.开发维护速度上,Hibernate显著的快,代码量显著小3.通过Annotation进展数据库的字段加密4.对Sql不熟的菜鸟来说可以自动调优5.结合Spring,通过声明式事务可以省略事务的限制,事务以横切面形式出现 Jdbc比Hibernate具备的优势有:1.大数据量访问时,Jdbc的效率显著快2.干脆操作数据库比较灵敏 15、Hibernate是如何延迟加载?当Hibernate在查询数据的时候,数据并没有存在及内存中,当程序真正对数据的操作时,对象才存在及内存中,就实现了延迟加载,他节约了效劳器的内存开销,从而进步了效劳器的性能。 16、说下Hibernate的缓存机制1. 内部缓存存在Hibernate中又叫一级缓存,属于应用事物级缓存2. 二级缓存:a) 应用及缓存b) 分布式缓存c) 第三方缓存的实现 17、spring工作机制及为什么要用【spring是一个轻量的限制反转和面对切面的容器框架】1.springmvc把全部的恳求都提交给DispatcherServlet,它会托付应用系统的其他模块负责对恳求进展真正的处理工作。2.DispatcherServlet查询一个或多个HandlerMapping,找到处理恳求的Controller.3.DispatcherServlet把恳求提交到目的Controller4.Controller进展业务逻辑处理后,会返回一个ModelAndView5.Dispathcher查询一个或多个ViewResolver视图解析器,找到ModelAndView对象指定的视图对象6.视图对象负责渲染返回给客户端。IoC就是由容器来限制业务对象之间的依靠关系。限制反转的本质,是限制权由应用代码转到了外部容器,限制器的转移既是所谓的反转。限制权的转移带来的好处就是降低了业务对象之间的依靠程度,即实现理解耦。DI/IOC,对许久层和表示层的限制及支配,增加系统的灵敏性和稳定性. AOP,面对切面,利用代理对程序的有效管理.spring是一个轻量级的IOC和AOP框架,通过spring的IOC实现松耦合,而作为一个AOP框架他又能别离系统效劳,实现内聚开发 Spring 最好的地方是它有助于您交换对象。有了 Spring,只要用 JavaBean 属性和配置文件参与依靠性协作对象。然后可以很简洁地在须要时交换具有类似接口的协作对象。 Spring对多种ORM框架供应了很好的支持