2-6.JAVA三大框架

Spring MVC

在这里插入图片描述
1、用户发送请求至前端控制器DispatcherServlet。
2、DispatcherServlet收到请求调用HandlerMapping处理器映射器。
3、处理器映射器找到具体的处理器(可以根据xml配置、注解进行查找),生成处理器对象及处理器拦截器(如果有则生成)一并返回给DispatcherServlet。
4、DispatcherServlet调用HandlerAdapter处理器适配器。
5、HandlerAdapter经过适配调用具体的处理器(Controller,也叫后端控制器)。
6、Controller执行完成返回ModelAndView。
7、andlerAdapter将controller执行结果ModelAndView返回给DispatcherServlet。
8、DispatcherServlet将ModelAndView传给ViewReslover视图解析器。
9、ViewReslover解析后返回具体View。
10、DispatcherServlet根据View进行渲染视图(即将模型数据填充至视图中)。
11、DispatcherServlet响应用户。
在这里插入图片描述
在这里插入图片描述

SpringMVC常用的注解

@Controller 标识是一个Controller,Spring包扫描创建实例
@RequestMapping 请求后的映射路径
@PathVariable 标识接收单个参数
@ResponseBody 返回对象利用jackson工具类转换为json字符串
@RequestParam 参数名和请求参数名称不同时使用,可以设置默认值

Spring

目的:是为了解决企业应用程序开发复杂性而创建的,解耦
在这里插入图片描述

Spring框架两大核心:IoC和DI

概念
IoC(Inversion of Control)简单来说就是将对象Object的创建的权力及对象的生命周期的管理过程交由Spring框架来处理,从此在开发过程中不在需要关注对象的创建和生命周期的管理,而是在需要的时候由Spring框架提供,这个由Spring框架管理对象创建和生命周期的机制称之为控制反转。
在创建对象的过程中Spring可以依据对象的关系,自动把其它对象注入(无需创建对象,直接拿着使用)进来,这个过程称之为DI(Dependency Injection)依赖注入。
总结下Spring核心就干了两件事:
创建对象 就是指将对象的创建,对象的存储(map),对象的管理(依赖查找,依赖注入)交给了spring容器。
设置对象的关联关系

IoC的XML方式

new一个xml文件
在这里插入图片描述
ApplicationContext ac = new ClassPathXmlApplicationContext(“applicationContext.xml”);
Hello h1 = new Hello();
System.out.println(h1);
h1.hi();
//根据id获取bean
//Spring就是一个大工厂(容器)专门生成bean,bean就是对象
Hello hello = (Hello)ac.getBean(“Hello”);
System.out.println(hello);
hello.hi();

注解方式

在这里插入图片描述
在这里插入图片描述

MyBatis持久层框架

简化JDBC的开发
能够更好的完成ORM(对象关系映射)

内部组件结构图

在这里插入图片描述

配置xml文件

在这里插入图片描述

引入xml文件

在这里插入图片描述

测试

在这里插入图片描述
在sqlMapConfig.xml配置,在映射文件中直接写对象名称即可

< typeAliases >
< typeAlias type=“cn.mybatis.pojo.User” alias=“User” />
< /typeAliases >

动态传值

#{…}/${…} #更高效
select * from user where name={name}

动态SQL

< sql id=“cols”>
id,title,sell_point,price,num,barcode,image,cid,status,created,updated
< /sql>
< select id=“find” resultType=“Item” parameterType=“Item”>
SELECT < include refid=“cols”/> FROM tb_item
< /select >

if

< select id=“find” resultType=“Item” parameterType=“Item”>
SELECT < include refid=“cols”/> FROM tb_item where
< if test=“title != null”> title like #{title} < /if>
< if test=“sellPoint != null”>and sell_point like #{sellPoint}< /if>
< /select>

where

去掉条件中可能多余的and或者or:

< select id=“find” resultType=“Item” parameterType=“Item”>
SELECT < include refid=“cols”/> FROM tb_item
< where>
< if test=“title != null”> title like #{title} < /if>
< if test=“sellPoint != null”>and sell_point like #{sellPoint}< /if>
< /where>
< /select>

set
<update id="update">
UPDATE teachers 
< set>
		< if test="tname != null">tname=#{tname},< /if>
		< if test="tsex != null">tsex=#{tsex},< /if>
		< if test="tbirthday != null">tbirthday=#{tbirthday},< /if>
		< if test="prof != null">prof=#{prof},< /if>
		< if test="depart != null">depart=#{depart}< /if>
< /set>
WHERE tno=#{tno}	
< /update>
foreach

用于in子查询中的多个值的遍历:

<delete id="delete">
DELETE FROM teachers WHERE tno IN 
<!--ids是给SQL传递的参数Map里的key,item的值就像是for循环里的i变量名-->
< foreach collection="ids" item="id" open="(" close=")" separator=",">
#{id}
< /foreach>	
< /delete>
调用代码:
Map<String,Object> map = new HashMap<String,Object>();
String[] ps = {"1","22"};
map.put("ids", ps );
mapper.delete(map);
```

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值