javaWeb面试题(含答案)讲课讲稿
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
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把请求提交到目标Controller
4.Controller进行业务逻辑处理后,会返回一个ModelAndView
5.Dispathcher查询一个或多个ViewResolver视图解析器,找到ModelAndView对象指定的视图对象
6.视图对象负责渲染返回给客户端。
IoC就是由容器来控制业务对象之间的依赖关系。控制反转的本质,是控制权由应用代码转
到了外部容器,控制器的转移既是所谓的反转。控制权的转移带来的好处就是降低了业务对
象之间的依赖程度,即实现了解耦。
DI/IOC,对持久层和表示层的控制与分配,增加系统的灵活性和稳定性. AOP,面向切面,利用代理对程序的有效管理.
spring是一个轻量级的IOC和AOP框架,通过spring的IOC实现松耦合,而作为一个AOP 框架他又能分离系统服务,实现内聚开发 Spring 最好的地方是它有助于您替换对象。有了
Spring,只要用 JavaBean 属性和配置文件加入依赖性(协作对象)。然后可以很容易地在需要时替换具有类似接口的协作对象。}
Spring对多种ORM框架提供了很好的支持