1、三大框架各起什么作用?
答:三大框架指的是SpringMVC+Spring+Mybatis
SpringMVC:它用于web层,相当于controller(等价于传统的servlet和struts的action),用来处理用户请求。举个例子,用户在地址栏输入http://网站域名/login,那么springmvc就会拦截到这个请求,并且调用controller层中相应的方法,(中间可能包含验证用户名和密码的业务逻辑,以及查询数据库操作,但这些都不是springmvc的职责),最终把结果返回给用户,并且返回相应的页面(当然也可以只返回json/xml等格式数据)。springmvc就是做前面和后面过程的活,与用户打交道!!
Spring:太强大了,以至于我无法用一个词或一句话来概括它。但与我们平时开发接触最多的估计就是IOC容器,它可以装载bean(也就是我们java中的类,当然也包括service dao里面的),有了这个机制,我们就不用在每次使用这个类的时候为它初始化,很少看到关键字new。另外spring的aop,事务管理等等都是我们经常用到的。
MyBatis:如果你问我它跟鼎鼎大名的Hibernate有什么区别?我只想说,他更符合我的需求。第一,它能自由控制sql,这会让有数据库经验的人(当然不是说我啦捂脸)编写的代码能搞提升数据库访问的效率。第二,它可以使用xml的方式来组织管理我们的sql,因为一般程序出错很多情况下是sql出错,别人接手代码后能快速找到出错地方,甚至可以优化原来写的sql。
2、Spring的两大特征(IOC和AOP)
1 Spring事务 1.1 Spring事务是什么(百度) 事务是对一系列的数据库操作(比如插入多条数据)进行统一的提交或是回滚操作,如果插入成功,那么一起成功,如果中间一条出现异常,那么回滚之前的所有操作。 Spring事务管理机制使用的是TransactionManager进行管理。回滚注解@Transactional。 2 Spring特征 1)开源框架。 2)IOC(控制反转) 将类的创建和依赖关系写在配置文件中,由配置文件注入,实现松耦合。 3)AOP 将安全、事务等程序逻辑相对独立的功能抽取出来,利用spring的配置文件将这些功能插进去。
3、请解释Spring Bean的生命周期?
Spring Bean的生命周期简单易懂。在一个bean实例被初始化时,需要执行一系列的初始化操作以达到可用的状态。同样的,当一个bean不在被调用时需要进行相关的析构操作,并从bean容器中移除。 Spring bean factory 负责管理在spring容器中被创建的bean的生命周期。Bean的生命周期由两组回调(call back)方法组成。 1. 初始化之后调用的回调方法。 2. 销毁之前调用的回调方法。 Spring框架提供了以下四种方式来管理bean的生命周期事件: • InitializingBean和DisposableBean回调接口 • 针对特殊行为的其他Aware接口 • Bean配置文件中的Custom init()方法和destroy()方法 • @PostConstruct和@PreDestroy注解方式 使用customInit()和 customDestroy()方法管理bean生命周期的代码样例如下: <beans> <bean id="demoBean" class="com.howtodoinjava.task.DemoBean" init-method="customInit" destroy-method="customDestroy"></bean> </beans> 更多内容请参考:Spring生命周期Spring Bean Life Cycle。
4、SpringMVC执行流程
流程 1、用户发送请求至前端控制器DispatcherServlet 2、DispatcherServlet收到请求调用HandlerMapping处理器映射器。 3、处理器映射器找到具体的处理器,生成处理器对象及处理器拦截器(如果有则生成)一并返回给DispatcherServlet。 4、DispatcherServlet调用HandlerAdapter处理器适配器 5、HandlerAdapter经过适配调用具体的处理器(Controller,也叫后端控制器)。 6、Controller执行完成返回ModelAndView 7、HandlerAdapter将controller执行结果ModelAndView返回给DispatcherServlet 8、DispatcherServlet将ModelAndView传给ViewReslover视图解析器 9、ViewReslover解析后返回具体View 10、DispatcherServlet根据View进行渲染视图(即将模型数据填充至视图中)。 11、DispatcherServlet响应用户
5、手写Oracle数据库存储过程
存储过程是一组为了完成特定功能的sql语句集,是一段sql代码片段,经编译后存储在数据库中,用户通过指定存储过程的名字并给出参数(如果存储过程存在参就给出,不存在就不用给出参数)来执行它。因为它是一段sql语句代码并且已经编译好了存放在数据库中,所以它的执行效率非常高。 存储过程的创建如下: create [or replace] procedure 过程名 [(参数名 in|out 数据类型)] as|is 变量的声明 begin plsql的子程序体; end;//如果是is,end 后面要加上过程名。 存储过程的调用 第一种:call 存储过程名(参数); 第二种:begin 存储过程名(参数); end; 例如1:给指定的员工涨工资100,并打印出涨前和涨后的工资 创建存储过程: create or replace procedure addsal(eno in number) is pemp emp%rowtype; begin select * into pemp from emp where empno = eno; update emp set sal = sal + 100 where empno = eno; dbms_output.put_line(‘ename:‘ || pemp.ename || ‘after‘ || (pemp.sal+100)); end addsal; 调用存储过程: 第一种调用:call addsal(7369); 第二种调用: begin addsal(eno=>7369); commit;//因为oracle数据库是手动提交的,所有涉及到的增删改都必须commit; end; 例如2:输出所有员工的姓名和工资 创建存储过程: create or replace procedure infoemp as cursor allemp is select * from emp;//创建一个游标 enemp emp%rowtype; begin open allemp; loop fetch allemp into enemp;//利用循环从游标中取数据 dbms_output.put_line(enemp.ename || ‘ ‘||enemp.sal); exit when allemp%notfound;//退出循环条件 end loop; close allemp; end; 调用存储过程: 第一种: call infoemp(); 第二种: begin infoemp(); end; 以上就是oracle数据库的存储过程的基本知识和用法。
6、数据库表60-80条数据
原文:https://www.cnblogs.com/blackboc-java/p/12117879.html