JAVAWEB高级编程2复习
- 格式:pdf
- 大小:120.46 KB
- 文档页数:3
以下内容可以从ppt或者课本上找。
简答占了一半的分数,本复习中包含AB卷
不能提前交卷,一般是考试1个小时后交卷。
1简答:ORM,IOC,AOP,HQL分别是什么单词的简写,分别的含义是什么?进行解释。
2简答:切入点,依赖注入,面向方面编程,编程式事务分别的含义是什么?进行解释。
3简答:hibernate是什么?spring是什么?
4简答:hibernate中的对象状态有哪三种?
持久化层的缓存的并发访问策略有哪四种?Session的5个主要方法及功能?
Hibernate的缓存分为哪两种?
Hibernate自带的分页机制是什么?
两种依赖注入的类型都是什么?
悲观锁与乐观锁的比较?
Spring框架的优点都有什么?
5Spring AOP中的通知类型
6如果你已知某个实例的持久化标识,你可以使用Session的()方法来获取它
7在Hibernate中,关于数据库的方言有什么作用
8清理Hibernate缓存的方法有什么?
9在Spring中,配置Hibernate事务管理器(Hibernate TransactionManager)时,需要注入的属性名称是()。
10使用Session的()会把对象的状态从数据库中移除。
11Hibernate中load和get方法的区别
12延迟加载的参数lazy的用法,在多对一得配置中,关于fetch的配置的用法
13设值注入的优点
14声明式事务中事物的传播特性,事务的规则有哪些,分别的含义
15编程题是有关SSH的综合应用
1hibernate中的对象状态有哪三种?
瞬时(transient):数据库中没有数据与之对应,超过作用域会被JVM垃圾回收器回收,一般是new出来且与session没有关联的对象。
持久(persistent):数据库中有数据与之对应,当前与session有关联,并且相关联的session没有关闭,事务没有提交;持久对象状态发生改变,在事务提交时会影响到数据库(hibernate能检测到)。
脱管(detached):数据库中有数据与之对应,但当前没有session与之关联;托管对象状态发生改变,hibernate不能检测到。
2Session的5个主要方法
1).save,persist保存数据,persist在事务外不会产生insert语句。
2).delete,删除对象
3).update,更新对象,如果数据库中没有记录,会出现异常。
4).get,根据ID查,会立刻访问数据库。
5).Load,根据ID查,(返回的是代理,不会立即访问数据库)。
3Hibernate的缓存分为哪两种?
一级缓存,单个会话的对象缓存。
二级缓存,可插拔的缓存插件,由于SessionFactory对象的生命周期和应用程序的生命周期对应,二级缓存对应于应用程序的生命周期。
4持久化层的缓存的并发访问策略有哪四种?
1)事务型:仅仅在受管理环境中适用。
它提供了Repeatable Read事务隔离级别。
对于经常被读但很少修改的数据,可以采用这种隔离类型,因为它可以防止脏读和不可重复读这类的并发问题。
2)读写型:提供了Read Committed事务隔离级别。
仅仅在非集群的环境中适用。
对于经常被读但很少修改的数据,可以采用这种隔离类型,因为它可以防止脏读这类的并发问题。
3)非严格读写型:不保证缓存与数据库中数据的一致性。
如果存在两个事务同时访问缓存中相同数据的可能,必须为该数据配置一个很短的数据过期时间,从而尽量避免脏读。
对于极少被修改,并且允许偶尔脏读的数据,可以采用这种并发访问策略。
4)只读型:对于从来不会修改的数据,如参考数据,可以使用这种并发访问策略。
5IOC(控制反转:Inverse of Control)是Spring的内核,AOP,声明式事务等功能都建立在该功能之上,它涉及到代码解耦,设计模式,代码优化等问题的考虑。
它包括两个方面的内容:其一是控制;其二是反转。
对于软件来说:控制反转即是某一接口的具体实现类的选择控制权从调用类中移除,转交给第三方裁决。
依赖注入DI(Dependency Injection):将调用类对接口的实现类的依赖关系由第三方注入,以移除调用类对接口实现类的依赖。
6切面(Aspect):从对象中抽取出来的横切性功能模块。
类似与OOP中的一个类。
由通知和切入点两部分组成。
7通知(Adivice):织入到目标类连接点上的一段程序代码。
切面的具体实现,例如具体的日志操作代码,一般是是切面中的某个方法。
8连接点(Joinpoint):目标对象中插入通知的地方。
即advice的应用位置。
spring中只支持是方法
9切入点(Pointcut):匹配连接点(Joinpoint)的断言。
连接点相当于数据记录,切点相当于查询条件,一个切点可以匹配多个连接点。
定义了advice应该被插入到什么样的Joinpoint点上,即advice的应用范围
10织入(Weaving):将增强添加到对目标类具体连接点上的过程。
将通知与目标对象结合在一起,生成新的对象的过程。
新的对象就是AOP Proxy。
Spring是在运行是完成织入工作的
11Hibernate支持两种锁机制:
即通常所说的“悲观锁”和“乐观锁”。
12悲观锁与乐观锁的比较:
悲观锁大多数情况下依靠数据库的锁机制实现,以保证操作最大程度的独占性。
但随之而来的就是数据库性能的大量开销,特别是对长事务而言,这样的开销往往无法承受;
相对悲观锁而言,乐观锁机制采取了更加宽松的加锁机制。
乐观锁机制往往基于系统中的数据存储逻辑,因此也具备一定的局限性,由于乐观锁机制是在我们的系统中实现,来自外部系统的更新操作不受我们系统的控制,因此可能会造成脏数据被更新到数据库中。
在系统设计阶段,我们应该充分考虑到这些情况出现的可能性,并进行相应调整(如将乐观锁策略在数据库存储过程中实现,对外只开放基于此存储过程的数据更新途径,而不是将数据库表直接对外公开)。
13集成SSH框架的系统从职责上分为四层:
表示层、
业务逻辑层、
数据持久层
域模块层,
14Hibernate自带的分页机制是什么?
hibernate自带的分页机制:获得Session对象后,从Session中获得Query对象。
用Query.setFirstResult():设置要显示的第一行数据,
Query.setMaxResults():设置要显示的最后一行数据。