ssm-day07 springboot3、Mybatis-Plus、springboot实战

springBoot3

早期没有暴露spring要写很多配置文件的缺点,因为是单体项目(就是一个工程就对应一个项目)

后期的微服务项目(把之前的单体项目进行服务化拆分),就要写n次整合文件

springboot是为了快速搭建一个spring项目,目的是少写或者不写配置文件就可以使用spring架构

总言之,一个快速启动框架

web启动器依赖相当于多个依赖的整合包

@SpringBootApplication 这个注解

1. 自己是一个配置类

2.自动加载其他启动器配置类(ioc)

3.本身会扫描启动类所在的包和子包的ioc和di注解

后期学springboot就学它整合对应的第三方框架【SpringMVC、Druid数据源、Mybatis】

可能会写一些配置文件,比如连接数据库,得有(账号、密码、url、driver)这些信息

  1. springboot是进行统一配置文件管理的

  2. key有两种(规定好的和自定义),自定义key可以通过@Value去读取

application.properties格式

application.yaml(yml)格式

语法精简,层次清晰

示例 语法格式

@Value注解?动作叫di注入?要想注入必须本身在ioc容器中

多环境配置作用:

1.开发环境参数不同,可以配置

2.不同框架参数写到不同配置文件中,指定配置激活生效

SpringBoot项目最后会打成一个jar包,在执行jar时,可以添加一个参数active,在启动项目的时候去动态指定激活哪个配置

springboot3整合springmvc

拦截器这块是真的懵

springboot3整合Druid数据源

一般会整合两个功能:

1.数据库的连接池功能

2.监控页面?

jdbc还是要看一下

兼容问题

springboot3整合Mybatis

1.导入依赖

2.编写配置文件

我哩个aop忘光

事务和aop(1.导依赖 2.加注解)

1.导插件 2.选择周期package

无原理纯使用

MyBatis-Plus

对MyBatis框架的增强和简化

之前单表的增删改查(crud)要写mapper接口和对应的xml文件

MyBatis-Plus不仅提供数据库操作的方法,也会提供sql语句的实现(全自动ORM类型持久层框架)

要创建一个空工程(Emply Project),因为boot工程它的父工程都是springboot

【弹幕】第一个空项目你就当成一个文件夹,后面创建模块时再

BaseMapper是由mybatis-plus提供的,里面有单表的增删改查等等方法

这个泛型指的就是要对哪实体类进行操作

驼峰式默认就是true,不用配了

Wrapper对象:指的是内部可以封装条件

为啥是1L?? (解答:因为是Long型)

update当属性值为null的时候,不修改。

例如上面没传name属性,就不修改。

声明实体类的时候,使用包装类型。因为包装数据类型不赋值就是空。

service层添加的方法多了一些差异化

mapper层重点是对单条数据的操作

所以是两步实现

【弹幕】子类UserServiceImpl 继承已有的实现类ServiceImpl(复用),并且implements UserService(保证装配时能够找到UserServiceImpl)

讲义上的方法可能不太全,可以去官网看

【弹幕】UserService中有IService的一半的实现的方法, 和自定义的方法, UserServiceImp中有IService全部的实现方法和UserService中自定义的方法, 所以还用接口接

这些方法应该会在写具体的业务功能时用到

是业务命名

查询方法中有分页查询,即传一个页数相关的记录对象,內部就可以帮我们进行分页

先配一个拦截器

mybatis分页回顾

mybatis-plus提供了一个插件集合MybatisPlusInterceptor

步骤:

1.配置分页插件

DbType别导错包,是mybatis-plus的

2.在方法中使用

先创建一个配置类对象,指定实体类,在里面封装页码和页容量

到这块已经非常迷瞪了 啥意思看不懂

自定义插件方法

1.先自己写一个方法,如下

2.然后在mapper.xml中写一个实现,即sql语句

创建mapper.xml文件时,mybatis-plus不用再额外指定位置

写sql语句的时候不要用;结尾,不用管limit

p158

条件构造器使用

Wrapper对象拼接各种条件

orm

ORM(Object-Relational Mapping,对象关系映射) 是一种编程技术,用于在 面向对象编程语言关系型数据库 之间建立映射关系。它的核心目的是解决对象(类、实例)与数据库表(行、列)之间的不匹配问题,让开发者可以用面向对象的方式操作数据库,而无需直接编写 SQL 语句。

会基本的拼接(链式调用),排序、删除、查询

简单的用QueryWrapper,特别复杂的可以自定义sql语句更简便(n层嵌套语句)

LambdaQueryWrapper是对QueryWrapper的增强,允许在第一个位置去传一个方法引用

jdk8的新特性:方法引用和lambda表达式

springboot实战-微头条实战

案例介绍:这个项目有哪些功能,用到什么技术栈

jwt验证?token?

后端工程搭建

数据库脚本执行

搭建SpringBoot工程

MybatisX逆向工程

通过逆向工程插件生成数据库对应的mapper、service、pojo实体类

相关推荐
少许极端2 小时前
算法奇妙屋(二十三)-完全背包问题(动态规划)
java·算法·动态规划·完全背包
a程序小傲2 小时前
得物Java面试被问:边缘计算的数据同步和计算卸载
java·开发语言·数据库·后端·面试·golang·边缘计算
你不是我我2 小时前
【Java 开发日记】我们来说一下无锁队列 Disruptor 的原理
java·开发语言
强子感冒了2 小时前
Java IO流学习笔记:从字节流到字符流
java·笔记·学习
期待のcode2 小时前
Java虚拟机堆
java·开发语言·jvm
太空眼睛2 小时前
【MCP】使用SpringBoot基于Streamable-HTTP构建MCP-Client
spring boot·ai·llm·sse·mcp·mcp-client·streamable
callJJ2 小时前
WebSocket 两种实现方式对比与入门
java·python·websocket·网络协议·stomp
一条咸鱼_SaltyFish2 小时前
Spring Cloud Gateway鉴权空指针惊魂:HandlerMethod为null的深度排查
java·开发语言·人工智能·微服务·云原生·架构
i***13243 小时前
SpringCloud实战十三:Gateway之 Spring Cloud Gateway 动态路由
java·spring cloud·gateway