关于第三阶段:mybatis;mybatis-plus;springboot总结

本文详细介绍了SpringBoot中控制器的请求处理,包括@RequestBody和@ResponseBody的使用,以及如何解决前端传递null值的问题。同时,讲解了跨域访问的@CrossOrigin注解和Mybatis的动态SQL实现。此外,讨论了Mybatis的一级和二级缓存机制,以及SpringBoot简化开发的特点。最后,提到了MybatisPlus的核心思想和优势。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.@RequestBody与@ResponseBody

@RequestBody:表示将接收的Json串转化为对象,前端直接传入Js对象,网页会解析成json串,后端接参需用@RequestBody

@ResponseBody:将对象转化为Json串;表示该方法的返回值都是json串格式,如果返回string类型,则原数据返回

2.关于跨域访问

@Crossorign:同源策略问题:协议://域名:端口号均相同.浏览器的访问地址,Ajax的请求地址

http协议端口号默认是:80,https协议默认的端口号:443

域名与ip对应

3.Mybatis

Mybayis是一款持久性框架,内部封装了JDBC,简化了操作数据库的过程,它支持自定义SQl,存储过程以及高级映射

Spring的测试类:@SpringBootTest,Spring为了后期测试代码方便,专门针对于测试方法,开发了一个注解,从Spring容器中动态获取对象

4.编辑映射文件

<select id="findUserById" resultType="com.jt.pojo.User">

        select * from demo_user where id= #{id}

</select>

id :与Maper中的方法名对应;

resultType:Mybatis自动将结果集数据封装为对象,如果返回值为List集合,则自动封装为List,User充当其泛型对象

如果service层多值传参,需要在mapper层方法中使用@Param("xxx"),封装为map集合

> &gt; < &lt; & &amp;

问题说明: 前端数据传递时可能会有null数据. 如果数据为null则不能充当where条件, 

解决方案: 动态Sql实现

 语法:
            <if test="判断条件"> id = #{id}</if>
                true:   则拼接标签内容
                false:  则不拼接标签内容
           <where>标签: 去除where后边多余的and/or <set>标签 去除多余1个,号

5.ResultMap语法

规则:
            1.如果数据库中的表字段名称与POJO属性的名称不一致
            则mybatis无法自动完成映射.
            2.Mybatis提供了一个属性resultMap(使用最多的).
              支持用户手动映射.
Mybatis中的结果集的字段名称如果与属性的名称满足驼峰映射的规则. 如果开启驼峰映射.,则可以实现自动化的映射.

@MapperScan("com.xx.xx")根据指定的包路径,创建接口对象交给spring容器管理

6.Mybatis缓存

作用:对于相同sql查询的数据库,引用缓存机制,可极大的提高用户查询的效率

缓存机制说明:由同一个sqlSessionFactory(类比连接池)生产的sqlSession(数据库连接)实现数据的共享

一级缓存:Mybayis默认开启,在同一个sqlSession内,实现数据库的共享.利用@Transactional的事务的注解,将多个SqlSession控制为一个.

二级缓存:由同一个sqlSessionFactory生产的多个sqlSession,可以在多线程条件下实现数据的共享,对象必须序列化,二级缓存默认条件下是开启的,但需要使用<cache/>标识在哪里使用二级缓存.

7.SpringBoot框架

springboot是一款服务框架的框架,主要服务是简化配置,spring的出现是为了通过注册bean的方式来管理类,但随着业务的增加,使用xml文件配置bean的方式变得繁琐,springboot可以简化传统框架的配置文件,以注解的方式(开箱即用)简化开发过程

8.关于请求注解总结

普通请求(?id=1)Get/Delete 对象,属性单独直接接参,无注解,,如果接收名字不一样需@RequestParm
Post/Put 接参需添加@RequestBody
Restfor请求(/{id}}Get/Delete 单独接参:@PathVariable  对象可直接接参
Post/Put 单独接收@PathVariable 对象可直接接参

 9.MybatisPlus

核心思想:用面向对象的方式操作数据库,映射关系:数据库表与对象,对象属性与字段一一映射,

特点:无侵入,损耗小,强大的crud,支持主键自动生成,代码生成器等

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值