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


     一、MyBatisPlus简介  105

     SpringBoot整合MyBatis开发过程:

     

     

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

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

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

     SpringBoot整合MyBatisPluse入门程序:

     

     

     

    注:第六步最关键的一步 

     注:在测试部分进行一个检查所有的东西的查询功能。

     二、MyBatisPlus概述 106

     

     注:国人开发。

    三、标准数据层开发 107

    3.1标准数据层CRUD功能 107

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

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

    原来的:

    使用注解后的效果:

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

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

     

    使用lomok框架的实现步骤: 

    步骤一:添加依赖

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

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

     

     总结:

    3.3分页功能 108

    分页查询的实质: 

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

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

    实现分页查询的步骤:

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

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

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

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

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

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

     步骤四:开启mp的日志

    MP分页查询功能:

     

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

    总结:

    四、DQL编程控制 109

    4.1条件查询方式 109

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

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

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

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

    关闭mybatis-plus的banner 

     

     关闭SpringBoot的banner: 

    按条件查询的三种方式: 

     

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

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

     

     

     

    总结:

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

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

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

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

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

    4.3查询投影 111

    什么叫查询投影:

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

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

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

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

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

     3.2、分组处理。 

     查询投影:

    4.4查询条件 112 

     

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

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

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

    4.4.2范围查询

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

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

    4.4.3模糊匹配

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

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

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

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

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

    查询条件:

     总结:

    4.5映射匹配兼容性 113

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

    数据库中数据:表字段

    程序中的数据:编码属性

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

    修改如下:

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

     

     解决方法:

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

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

    解决方法:

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

     解决方法:使用注解@TableName

     总结:

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

    5.1Insert 114

    5.1.1id生成策略 114

     @TableId注解的介绍:

    属性性质一: 

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

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

     属性性质二:

     

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

    时间戳:会到毫秒ms

    5.1.2id生成策略全局配置 114

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

    总结:

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

    5.2.1多数据删除

    按照多个ID进行删除

     按照多个ID进行查询

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

    5.3逻辑删除 116

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

    步骤一: 

     步骤二:

     全局配置(在mybatis-plus):逻辑删除 

    在yml中进行配置处理。 

     在全局配置中进行配置:

     逻辑删除案例:

     

     

     

    5.4乐观锁 117

    锁:解决并发问题。

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

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

    解决问题的原因: 

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

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

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

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

     乐观锁实现步骤:

     

     

     

     总结:

     六、快速开发 118

    代码生成器:

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

     

     

    步骤一:添加依赖坐标 

     

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

    如果启动代码生成器呢?

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

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

     

     

     

     

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

  • 相关阅读:
    JS问题:如何实现文本一键复制和长按复制功能?
    使用 Learner Lab - 学生
    【广州华锐互动】煤矿坍塌VR事故警示教育突破了哪些限制?
    中国节日主题网站设计 红色建军节HTML+CSS 红色中国文化主题网站设计 HTML学生作业网页
    【网络安全】护网
    Python 中的随机 IP 地址生成器
    线上问题——学习记录幂等判断失效问题分析
    Java开发一些偏冷门的面试题
    【读点论文】Densely Connected Convolutional Networks用残差连接大力出奇迹,进一步叠加特征图,以牺牲显存为代价
    VI常用操作
  • 原文地址:https://blog.csdn.net/xiaoxixicc/article/details/127599104