Spring-MVC与MyBatis知识讲解PPT资料.pptx

上传人:b****9 文档编号:13958617 上传时间:2022-10-15 格式:PPTX 页数:32 大小:8.95MB
下载 相关 举报
Spring-MVC与MyBatis知识讲解PPT资料.pptx_第1页
第1页 / 共32页
Spring-MVC与MyBatis知识讲解PPT资料.pptx_第2页
第2页 / 共32页
Spring-MVC与MyBatis知识讲解PPT资料.pptx_第3页
第3页 / 共32页
Spring-MVC与MyBatis知识讲解PPT资料.pptx_第4页
第4页 / 共32页
Spring-MVC与MyBatis知识讲解PPT资料.pptx_第5页
第5页 / 共32页
点击查看更多>>
下载资源
资源描述

Spring-MVC与MyBatis知识讲解PPT资料.pptx

《Spring-MVC与MyBatis知识讲解PPT资料.pptx》由会员分享,可在线阅读,更多相关《Spring-MVC与MyBatis知识讲解PPT资料.pptx(32页珍藏版)》请在冰豆网上搜索。

Spring-MVC与MyBatis知识讲解PPT资料.pptx

modelAndView.setViewName(viewName);

modelAndView.addObject(需要放到model中的属性名称,对应的属性值,它是一个对象);

returnmodelAndView;

控制器Controller,1、使用RequestParam绑定HttpServletRequest请求参数到控制器方法参数2、使用CookieValue绑定cookie的值到Controller方法参数3、使用RequestHeader注解绑定HttpServletRequest头信息到Controller方法参数,控制器Controller,RequestMapping(value=testParams,params=param1=value1,param2,!

param3)publicStringtestParams()System.out.println(testParams.);

returntestParams;

RequestMapping(value=testMethod,method=RequestMethod.GET,RequestMethod.DELETE)publicStringtestMethod()returnmethod;

支持参数,

(1)HttpServlet对象,主要包括HttpServletRequest、HttpServletResponse和HttpSession对象

(2)Spring自己的WebRequest对象。

使用该对象可以访问到存放在HttpServletRequest和HttpSession中的属性值。

(3)InputStream、OutputStream、Reader和Writer(4)使用PathVariable、RequestParam、CookieValue和RequestHeader标记的参数。

(5)使用ModelAttribute标记的参数。

(6)java.util.Map、Spring封装的Model和ModelMap。

(7)实体类。

可以用来接收上传的参数。

(8)Spring封装的MultipartFile。

用来接收上传文件的。

(9)Spring封装的Errors和BindingResult对象,支持返回类型,

(1)一个包含模型和视图的ModelAndView对象。

(2)一个模型对象,这主要包括Spring封装好的Model和ModelMap,以及java.util.Map。

(3)一个View对象。

这个时候如果在渲染视图的过程中模型的话就可以给处理器方法定义一个模型参数,然后在方法体里面往模型中添加值。

(4)一个String字符串。

(5)返回值是void。

(6)如果处理器方法被注解ResponseBody标记,类型转换器,ControllerRequestMapping(/myTest)publicclassMyControllerInitBinderpublicvoiddataBinder(WebDataBinderbinder)DateFormatdateFormat=newSimpleDateFormat(yyyyMMdd);

PropertyEditorpropertyEditor=newCustomDateEditor(dateFormat,true);

binder.registerCustomEditor(Date.class,propertyEditor);

RequestMapping(dataBinder/date)publicvoidtestDate(PathVariableDatedate,Writerwriter)throwsIOExceptionwriter.write(String.valueOf(date.getTime();

数据校验,对于任何一个应用而言在客户端做的数据有效性验证都不是安全有效的,这时候就要求我们在开发的时候在服务端也对数据的有效性进行验证。

SpringMVC自身对数据在服务端的校验有一个比较好的支持,它能将我们提交到服务端的数据按照我们事先的约定进行数据有效性验证,对于不合格的数据信息SpringMVC会把它保存在错误对象中,这些错误信息我们也可以通过SpringMVC提供的标签在前端JSP页面上进行展示。

在SpringMVC中提供了一个Validator接口,我们可以通过该接口来定义我们自己对实体对象的验证。

视图解析器,SpringMVC用于处理视图最重要的两个接口是ViewResolver和View。

ViewResolver的主要作用是把一个逻辑上的视图名称解析为一个真正的视图,SpringMVC中用于把View对象呈现给客户端的是View对象本身,而ViewResolver只是把逻辑视图名称解析为对象的View对象。

View接口的主要作用是用于处理视图,然后返回给客户端。

拦截器,SpringMVC中的Interceptor拦截器也是相当重要和相当有用的,它的主要作用是拦截用户的请求并进行相应的处理。

比如通过它来进行权限验证,或者是来判断用户是否登陆,或者是像12306那样子判断当前时间是否是购票时间。

上传文件,CommonsMultipartResolver允许设置的属性有:

defaultEncoding:

表示用来解析request请求的默认编码格式,当没有指定的时候根据Servlet规范会使用默认值ISO-8859-1。

当request自己指明了它的编码格式的时候就会忽略这里指定的defaultEncoding。

uploadTempDir:

设置上传文件时的临时目录,默认是Servlet容器的临时目录。

maxUploadSize:

设置允许上传的最大文件大小,以字节为单位计算。

当设为-1时表示无限制,默认是-1。

maxInMemorySize:

设置在文件上传时允许写到内存中的最大值,以字节为单位计算,默认是10240。

异常处理,springMVC提供的异常处理主要有两种方式:

一种是直接实现自己的HandlerExceptionResolver,当然这也包括使用Spring已经为我们提供好的SimpleMappingExceptionResolver和DefaultHandlerExceptionResolver。

另一种是使用注解的方式实现一个专门用于处理异常的ControllerExceptionHandler。

MyBatis,工作原理,

(1)加载配置并初始化

(2)接收调用请求处理过程:

将请求传递给下层的请求处理层进行处理。

(3)处理操作请求触发条件:

API接口层传递请求过来处理过程:

(A)根据SQL的ID查找对应的MappedStatement对象。

(B)根据传入参数对象解析MappedStatement对象,得到最终要执行的SQL和执行传入参数。

(C)获取数据库连接,根据得到的最终SQL语句和执行传入参数到数据库执行,并得到执行结果。

(D)根据MappedStatement对象中的结果映射配置对得到的执行结果进行转换处理,并得到最终的处理结果。

(E)释放连接资源。

(4)返回处理结果将最终的处理结果返回。

功能结构,功能结构,API接口层:

提供给外部使用的接口API,开发人员通过这些本地API来操纵数据库。

接口层一接收到调用请求就会调用数据处理层来完成具体的数据处理。

数据处理层:

负责具体的SQL查找、SQL解析、SQL执行和执行结果映射处理等。

它主要的目的是根据调用的请求完成一次数据库操作。

基础支撑层:

负责最基础的功能支撑,包括连接管理、事务管理、配置加载和缓存处理,这些都是共用的东西,将他们抽取出来作为最基础的组件。

为上层的数据处理层提供最基础的支撑。

框架结构,sqlMapConfig.xml:

(是mybatis的全局配置文件,名称不固定的)配置了数据源、事务等mybatis运行环境mapper.xml:

配置sql语句SqlSessionFactory:

(会话工厂),根据配置文件创建工厂作用:

创建SqlSessionSqlSession(会话),是一个接口,面向用户(程序员)的接口作用:

操作数据库(发出sql增、删、改、查)Executor(执行器),是一个接口(基本执行器、缓存执行器)作用:

SqlSession内部通过执行器操作数据库mappedstatement(底层封装对象)作用:

对操作数据库存储封装,包括sql语句,输入参数、输出结果类型。

动态sql,ifchoose(when,otherwise)trimwheresetforeach,select*fromt_blogwhereidin#key,#value,注意事项,示例1:

执行SQL:

Select*fromempwherename=#employeeName参数:

employeeName=Smith解析后执行的SQL:

Select*fromempwherename=?

=Select*fromempwherename=Simith执行SQL:

Select*fromempwherename=$employeeName参数:

employeeName传入值为:

Smith解析后执行的SQL:

Select*fromempwherename=Smith#会生成preparedStatement.预编译SQL语句,这样比较安全,防止SQL注入,而且传入的值是字符串类型$:

相当

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 党团工作 > 党团建设

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1