Day09 SSM第九次笔记---SpringBoot基础部分学习

 一、MyBatisPlus简介  105

Day09 SSM第九次笔记---SpringBoot基础部分学习_第1张图片 

 SpringBoot整合MyBatis开发过程:

Day09 SSM第九次笔记---SpringBoot基础部分学习_第2张图片

 Day09 SSM第九次笔记---SpringBoot基础部分学习_第3张图片

 Day09 SSM第九次笔记---SpringBoot基础部分学习_第4张图片

Day09 SSM第九次笔记---SpringBoot基础部分学习_第5张图片 

步骤一:添加mybatis-plus的启动依赖。

Day09 SSM第九次笔记---SpringBoot基础部分学习_第6张图片

步骤二:正常设置domain,和之前一样。

Day09 SSM第九次笔记---SpringBoot基础部分学习_第7张图片

步骤三:添加一个依赖。最大的不同

Day09 SSM第九次笔记---SpringBoot基础部分学习_第8张图片

 SpringBoot整合MyBatisPluse入门程序:

Day09 SSM第九次笔记---SpringBoot基础部分学习_第9张图片

 Day09 SSM第九次笔记---SpringBoot基础部分学习_第10张图片

 Day09 SSM第九次笔记---SpringBoot基础部分学习_第11张图片

Day09 SSM第九次笔记---SpringBoot基础部分学习_第12张图片 

Day09 SSM第九次笔记---SpringBoot基础部分学习_第13张图片 Day09 SSM第九次笔记---SpringBoot基础部分学习_第14张图片

注:第六步最关键的一步 

Day09 SSM第九次笔记---SpringBoot基础部分学习_第15张图片 注:在测试部分进行一个检查所有的东西的查询功能。

 二、MyBatisPlus概述 106

 Day09 SSM第九次笔记---SpringBoot基础部分学习_第16张图片

 注:国人开发。

Day09 SSM第九次笔记---SpringBoot基础部分学习_第17张图片

三、标准数据层开发 107

3.1标准数据层CRUD功能 107

Day09 SSM第九次笔记---SpringBoot基础部分学习_第18张图片

3.2lomnok架包的使用(快速开发pojo实体类)

 添加一个lombok架包,简化省略domain的编写:

原来的:

Day09 SSM第九次笔记---SpringBoot基础部分学习_第19张图片

使用注解后的效果:

使用注解来代替这些内容。要写下面这些注解,可以代替上面的内容。

Day09 SSM第九次笔记---SpringBoot基础部分学习_第20张图片 

更快捷的注释:使用@Data表示上面的一堆。但是不包含构造方法的那两个注解。 

 

 

使用lomok框架的实现步骤: 

步骤一:添加依赖

步骤二:选择lombok对应的内容

Day09 SSM第九次笔记---SpringBoot基础部分学习_第21张图片 

lombok的学习:(快速开发pojo实体类)

 Day09 SSM第九次笔记---SpringBoot基础部分学习_第22张图片

Day09 SSM第九次笔记---SpringBoot基础部分学习_第23张图片

 总结:

Day09 SSM第九次笔记---SpringBoot基础部分学习_第24张图片

3.3分页功能 108

Day09 SSM第九次笔记---SpringBoot基础部分学习_第25张图片分页查询的实质: 

拦截并增强, 如果想要实现分页的效果功能,则是需要配置一个分页拦截器。

如果不添加的话,实际上就是对表格中的所有数据进行查询的处理,而增加的分页拦截器则是在查询所有的内容基础上,进行增强的作用

实现分页查询的步骤:

步骤一:使用MP接口的内容

Day09 SSM第九次笔记---SpringBoot基础部分学习_第26张图片

步骤二:添加分页拦截器。

实质上添加一个分页拦截器的bean。新创建一个bean,作为分页拦截器的bean。

Day09 SSM第九次笔记---SpringBoot基础部分学习_第27张图片

注:3就是在我们添加的大的总的拦截器中选择一个我们需要的分页拦截器。

步骤三:加载创建的分页拦截器bean

在创建的bean中添加一个注解@Configuration,作为一个bean能被别的地方检索扫描所写的bean。

Day09 SSM第九次笔记---SpringBoot基础部分学习_第28张图片

 步骤四:开启mp的日志

Day09 SSM第九次笔记---SpringBoot基础部分学习_第29张图片

MP分页查询功能:

Day09 SSM第九次笔记---SpringBoot基础部分学习_第30张图片

Day09 SSM第九次笔记---SpringBoot基础部分学习_第31张图片

 Day09 SSM第九次笔记---SpringBoot基础部分学习_第32张图片

 注:在.yml配置文件中进行添加,输入log-impl就可以显示出来了。

总结:

Day09 SSM第九次笔记---SpringBoot基础部分学习_第33张图片

四、DQL编程控制 109

4.1条件查询方式 109

Day09 SSM第九次笔记---SpringBoot基础部分学习_第34张图片

小技巧:清理不必要的日志输出:

例如:清理这些日志的输出。 

步骤一:在resources中创建一个.xml的文件(该步骤是将不必要的info等日志进行清理掉)

Day09 SSM第九次笔记---SpringBoot基础部分学习_第35张图片

Day09 SSM第九次笔记---SpringBoot基础部分学习_第36张图片

步骤二:清理掉显示的开启时的图片(.yml中进行添加)加载出来的图片叫做banner

关闭mybatis-plus的banner 

Day09 SSM第九次笔记---SpringBoot基础部分学习_第37张图片

 Day09 SSM第九次笔记---SpringBoot基础部分学习_第38张图片

 关闭SpringBoot的banner: 

Day09 SSM第九次笔记---SpringBoot基础部分学习_第39张图片

按条件查询的三种方式: 

 Day09 SSM第九次笔记---SpringBoot基础部分学习_第40张图片

 注:ge表示大于的意思,lt表示小于的意思。

Day09 SSM第九次笔记---SpringBoot基础部分学习_第41张图片

 条件查询---设置查询条件:

 Day09 SSM第九次笔记---SpringBoot基础部分学习_第42张图片

 Day09 SSM第九次笔记---SpringBoot基础部分学习_第43张图片

 Day09 SSM第九次笔记---SpringBoot基础部分学习_第44张图片

总结:

Day09 SSM第九次笔记---SpringBoot基础部分学习_第45张图片 

4.2条件查询---null值处理 110

本部分主要解决null作为上下限时该如何处理。例如:null采用条件判断查询,让判断查询作为第一个参数。

步骤一:封装User中关于涉及到存在上下限变量的数据内容,进行再次的封装,让原来的在User中的数据作为上限或者是下限。新创建的内容设定的变量为原来类中的另外的一端上限或者下限。例如:年龄就是会有上下限。

Day09 SSM第九次笔记---SpringBoot基础部分学习_第46张图片

 步骤二:对null值作为上下限作为处理。

Day09 SSM第九次笔记---SpringBoot基础部分学习_第47张图片

条件查询---null值处理:

Day09 SSM第九次笔记---SpringBoot基础部分学习_第48张图片

Day09 SSM第九次笔记---SpringBoot基础部分学习_第49张图片

4.3查询投影 111

什么叫查询投影:

查询出来的内容有多少字段。实质上就是:查询出来的结果是什么样的形式

就是将查询到的结果,在进行筛选,查看自己想看的内容数据。

1、查询投影1,适合lamb的格式的查询投影。

Day09 SSM第九次笔记---SpringBoot基础部分学习_第50张图片

2、查询投影2,适合字符串查询的。

Day09 SSM第九次笔记---SpringBoot基础部分学习_第51张图片

3.1、查询所有的数据有多少条。像这种的查询投影是以后使用的比较多的。

Day09 SSM第九次笔记---SpringBoot基础部分学习_第52张图片

 3.2、分组处理。 

Day09 SSM第九次笔记---SpringBoot基础部分学习_第53张图片

 查询投影:

Day09 SSM第九次笔记---SpringBoot基础部分学习_第54张图片

4.4查询条件 112 

 Day09 SSM第九次笔记---SpringBoot基础部分学习_第55张图片

4.4.1等条件查询 112 (登陆匹配查询)

查询                        自己设定的内容,和数据库的内容匹配                的数据信息。

使用特定的只查询一条语句的指令。

Day09 SSM第九次笔记---SpringBoot基础部分学习_第56张图片

4.4.2范围查询

Day09 SSM第九次笔记---SpringBoot基础部分学习_第57张图片

 注:lt:小于 le:小于等于 gt:大于 ge:大于等于 eq:等于 between:范围值之内

将圈1中的between都可用上述的类型进行替换,来实现条件查询。

4.4.3模糊匹配

模糊匹配:就是提供一个关键字或者关键字符,来查询和你提供的相近的数据内容。

Day09 SSM第九次笔记---SpringBoot基础部分学习_第58张图片

其中需要注意的是likeLeft和likeRight,这两种的使用。

例如:数据库中有Jerry 和Jock两个数据。我只提供J 

likeLeft:%J,查询的是J左侧的内容,即xxxJ。结果:0数据。

likeRight:J%,初选的是J右侧的内容,即Jxxx。结果:两条数据,Jerry和Jock。

查询条件:

Day09 SSM第九次笔记---SpringBoot基础部分学习_第59张图片

 

 

 总结:

Day09 SSM第九次笔记---SpringBoot基础部分学习_第60张图片

4.5映射匹配兼容性 113

4.5.1问题一:表字段与编码属性设计不同步

Day09 SSM第九次笔记---SpringBoot基础部分学习_第61张图片

数据库中数据:表字段

程序中的数据:编码属性

采用@TableField注解来解决两端名称不一致的情况。

Day09 SSM第九次笔记---SpringBoot基础部分学习_第62张图片

修改如下:

Day09 SSM第九次笔记---SpringBoot基础部分学习_第63张图片

4.5.2问题二:编码中添加了数据库中未定义的属性

 Day09 SSM第九次笔记---SpringBoot基础部分学习_第64张图片

 解决方法:

Day09 SSM第九次笔记---SpringBoot基础部分学习_第65张图片

4.5.3问题三:采用默认查询开了更多的字段查看权限

主要涉及的是,密码的字段信息,不能在传输的过程中被公示出来,会造成安全隐患。本问题主要解决的是密码的问题,因为默认的情况下是可以被查看的。

解决方法:

Day09 SSM第九次笔记---SpringBoot基础部分学习_第66张图片

Day09 SSM第九次笔记---SpringBoot基础部分学习_第67张图片

 4.5.4问题四:表名与编码开发涉及不同步

Day09 SSM第九次笔记---SpringBoot基础部分学习_第68张图片

 解决方法:使用注解@TableName

Day09 SSM第九次笔记---SpringBoot基础部分学习_第69张图片 

Day09 SSM第九次笔记---SpringBoot基础部分学习_第70张图片

 总结:

Day09 SSM第九次笔记---SpringBoot基础部分学习_第71张图片

五、DML编程控制 (增、删、改的学习)114

5.1Insert 114

5.1.1id生成策略 114

Day09 SSM第九次笔记---SpringBoot基础部分学习_第72张图片

 @TableId注解的介绍:Day09 SSM第九次笔记---SpringBoot基础部分学习_第73张图片

属性性质一: 

自己设定数据库中Id的生成规律。使用雪花算法来生成的id。

Day09 SSM第九次笔记---SpringBoot基础部分学习_第74张图片 

设置input后,自己就可以设定id了。

Day09 SSM第九次笔记---SpringBoot基础部分学习_第75张图片

 属性性质二:

Day09 SSM第九次笔记---SpringBoot基础部分学习_第76张图片

 Day09 SSM第九次笔记---SpringBoot基础部分学习_第77张图片

雪花算法:生成一个串。64位二进制组成的。 实际上就是一个Long的长度。

时间戳:会到毫秒ms

5.1.2id生成策略全局配置 114

Day09 SSM第九次笔记---SpringBoot基础部分学习_第78张图片

 在yml文件中进行配置mybatis-plus。

总结:

 

Day09 SSM第九次笔记---SpringBoot基础部分学习_第79张图片

5.2多记录操作(删除与查询) 115

5.2.1多数据删除

按照多个ID进行删除

Day09 SSM第九次笔记---SpringBoot基础部分学习_第80张图片

 按照多个ID进行查询

Day09 SSM第九次笔记---SpringBoot基础部分学习_第81张图片

 多记录操作(删除与查询):

Day09 SSM第九次笔记---SpringBoot基础部分学习_第82张图片

5.3逻辑删除 116

逻辑删除:不是真正的删除,而是对其作了个标记,数据依旧会保存在数据库当中。但是在对数据进行查询时,被标记的那条数据将不会被MP查询到。但是可以通过SQL语句查询到。

Day09 SSM第九次笔记---SpringBoot基础部分学习_第83张图片

Day09 SSM第九次笔记---SpringBoot基础部分学习_第84张图片 

 

步骤一: 

Day09 SSM第九次笔记---SpringBoot基础部分学习_第85张图片 步骤二:

Day09 SSM第九次笔记---SpringBoot基础部分学习_第86张图片 全局配置(在mybatis-plus):逻辑删除 

在yml中进行配置处理。 

Day09 SSM第九次笔记---SpringBoot基础部分学习_第87张图片

 在全局配置中进行配置:Day09 SSM第九次笔记---SpringBoot基础部分学习_第88张图片

 逻辑删除案例:

Day09 SSM第九次笔记---SpringBoot基础部分学习_第89张图片

 Day09 SSM第九次笔记---SpringBoot基础部分学习_第90张图片

 Day09 SSM第九次笔记---SpringBoot基础部分学习_第91张图片

 Day09 SSM第九次笔记---SpringBoot基础部分学习_第92张图片

5.4乐观锁 117

锁:解决并发问题。

乐观锁的解决并发访问问题: 

例如:秒杀问题,当秒杀到最后一件商品时,但是同时有 好几个人多是在抢最后一件商品的秒杀,绝对不能出现商品为负商品的情况发生,故需要加锁来解决并发访问的问题,

解决问题的原因: 

解决并发的问题的原因:是因为乐观锁执行的过程中将其对应的数据库中的一个信息(本文中的是version)进行了自动+1,在执行的过程当中,第一个人进行执行了乐观锁,原本的version就会被进行+1,然后下一个人在执行同样的语句,将会无法实现,因为version已经进行了+1,这个人就不能实现对应的操作处理。

步骤一:在数据库中添加version,乐观锁的字段。 

Day09 SSM第九次笔记---SpringBoot基础部分学习_第93张图片

步骤二:在实体类中添加注解。@Version

Day09 SSM第九次笔记---SpringBoot基础部分学习_第94张图片 

步骤三:在拦截器中一个拦截器,实际上就是添加bean

Day09 SSM第九次笔记---SpringBoot基础部分学习_第95张图片

 乐观锁实现步骤:

Day09 SSM第九次笔记---SpringBoot基础部分学习_第96张图片

 Day09 SSM第九次笔记---SpringBoot基础部分学习_第97张图片

 Day09 SSM第九次笔记---SpringBoot基础部分学习_第98张图片

 Day09 SSM第九次笔记---SpringBoot基础部分学习_第99张图片

Day09 SSM第九次笔记---SpringBoot基础部分学习_第100张图片 总结:

Day09 SSM第九次笔记---SpringBoot基础部分学习_第101张图片

 六、快速开发 118

代码生成器:

不用自己写代码了,自动能够生成代码。

Day09 SSM第九次笔记---SpringBoot基础部分学习_第102张图片

 Day09 SSM第九次笔记---SpringBoot基础部分学习_第103张图片

 Day09 SSM第九次笔记---SpringBoot基础部分学习_第104张图片

步骤一:添加依赖坐标 

 Day09 SSM第九次笔记---SpringBoot基础部分学习_第105张图片

步骤二:创建一个实现模板的类

如果启动代码生成器呢?

创建代码生成器的对象,执行代码生成器。

快速开发---代码生成器:

Day09 SSM第九次笔记---SpringBoot基础部分学习_第106张图片

 Day09 SSM第九次笔记---SpringBoot基础部分学习_第107张图片

 Day09 SSM第九次笔记---SpringBoot基础部分学习_第108张图片

 Day09 SSM第九次笔记---SpringBoot基础部分学习_第109张图片

 Day09 SSM第九次笔记---SpringBoot基础部分学习_第110张图片

Day09 SSM第九次笔记---SpringBoot基础部分学习_第111张图片 

 完结撒花,撒花,撒花。*★,°*:.☆( ̄▽ ̄)/$:*.°★* 。

你可能感兴趣的:(Spring,spring,boot,学习,mybatis)