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
主要就是声明式事务了,通过annotation配置就可以2 参见这篇文章吧
http://www.iteye.com/topic/10467753 关键点就是rownum了,根据rownum的范围来界定分页的内容
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
prototype表示创建的bean不是单例的,每请求一次就创建一个,所以不会出现线程安全的问题,但是会消耗很大的系统资源。singleton和prototype相反。。
主要写三步,第一,配置数据源 第二,配置实务管理器,第三,配置aop,也就是给方法添加实务。2, 第一,容器启动,实例化接口类,第二,Bean实例化,然后进行依赖注入,第三,调用Bean实现的接口
第四,进行bean销毁3,这个太简单,数据库分页就是所谓的真分页,就是利用rownum进行分页,但是效率不高。老兄,我这都是手写的,还满意吧?