日期:2014-05-19  浏览次数:20556 次

求解几个面试问题!
1、请说一下spring中的事务!
2、请说一下Spring的生命周期!
3、oracle中的分页!

请各位大虾帮解决下。1、2题目我不知道怎么用语言来描述 。第3题各位告诉我语句和怎么组织语言表达出来 拜谢阿!!

------解决方案--------------------
1、请说一下spring中的事务!
2、请说一下Spring的生命周期!
3、oracle中的分页!


1.spring是通过aop(也就是切面编程)来实现事务管理的,需要在创建一个transactionManager的bean,由这个transactionManager来管理session,然后创建transactionInterceptor(也就是事务拦截器),来指定事务的隔离级别和传播行为,最后创建BeanNameAutoProxyCreator的bean,在这个bean中指定调用哪个拦截器来拦截哪些Service,就可以对Service进行事务管理。

2.这个还真不会。。

3.通过rownum来实现分页,最少要有一个子查询和一个外层查询。在子查询中让rownum小于最大行数,然后返回rownum的别名,在外层查询让rownum的别名大于最小行,就可以啦。。
rownum不能进行大于操作,因为他的值是不断的再增长的,所以只能通过子查询,把rownum的别名返回到外层查询,才能进行大于操作。

select * from (select *,rownum as r from student where rownum < 100) where r > 90
------解决方案--------------------
这个我来告诉你

1,spring是通过aop来管理实务的,就是都写在配置文件中,统一处理,首先,你要明白事务是什么,就是N条sql语句一起执行,如果有突发情况(断电啥的),就都回滚,一个也不执行。那么spring就是通过aop来管理的,spring配置实务有两种方式:声明式和注解式,现在开发都用声明式,直接在配置文件中写就行了,
主要写三步,第一,配置数据源 第二,配置实务管理器,第三,配置aop,也就是给方法添加实务。

2, 第一,容器启动,实例化接口类,第二,Bean实例化,然后进行依赖注入,第三,调用Bean实现的接口
第四,进行bean销毁

3,这个太简单,数据库分页就是所谓的真分页,就是利用rownum进行分页,但是效率不高。

老兄,我这都是手写的,还满意吧?