Java后端开发(Maven、Mybatis、Mybatis Plus


JavaEE

  • 一、Maven
    • 1.Maven的作用
    • 2.构建
    • 3.依赖
    • 4.Maven的工作机制
  • 二、Maven核心程序配置
    • 1.指定本地仓库
    • 2.配置阿里云提供的镜像仓库
    • 3.配置Maven工程的基础JDK版本
    • 4.检查 JAVA_HOME 配置是否正确
    • 5.配置 MAVEN_HOME
  • 三、Maven:命令行环境
    • 1.Maven核心概念:坐标
    • 2.Maven核心概念:POM
    • 3.Maven核心概念:约定的目录结构
    • 4.主体程序
    • 5.Maven的构建命令
  • 四、Maven:IDEA
    • 1.创建Maven项目
    • 2.导入Maven项目
    • 关于依赖项报错的
  • 五、依赖管理
    • 1.依赖配置
    • 2.依赖传递
    • 3.依赖范围
    • 4.生命周期
  • 六、Web后端开发入门
    • 1.SpringBootWeb Demo
    • 2.HTTP协议
    • 3.响应协议
    • 4.Web服务器 - Tomcat
    • 5.SpringBootWeb请求响应
  • 七、请求
    • 1.postman
    • 2.简单参数
    • 3.实体参数
    • 4.数组集合参数
    • 5.日期参数
    • 6.Json参数
    • 7.路径参数:
    • 8.参数总结
  • 八、响应数据
    • 1.响应模式
    • 2.三层架构
    • 3.分层解耦
    • 4.IOC & DI 入门
    • 5.Bean的组件扫描
    • 6.DI详解
  • 九、Mybatis
    • 1.入门流程
    • 2.配置SQL提示
    • 3.JDBC
    • 4.数据库连接池
    • 5.lombok
    • 6.Mybatis基础操作(curd)
      • (1).删除语句:
      • (2).Mybatis日志输出:
      • (3).预编译SQL:
      • (4).参数占位符 :
      • (5).增加语句:
      • (6).更改语句:
      • (7).查询语句:
      • (8).数据封装:
      • (8).条件查询:
      • (9).不同版本的区别:
    • 7.XML映射文件
      • (1).在 `resources` 中先建立同包同名文件
      • (2).在 xml 当中配置
      • (3).使用XML
      • (4).安装Mybatisx插件
      • (5).XML 和 注释响应模式
      • (5).动态SQL
        • ①:< if > 和 < where >
        • ②:< set >
        • ③:< foreach >
        • ④:< sql > 和 < include >
  • 十、Mybatis Plus
    • 1.新建
      • (1).导入 jar 包
      • (2).导入 druid 数据库连接池(第九章第四点)
      • (3).创建DAO、实例类、Test类
    • 2.标准数据层CRUD功能
    • 3.分页查询
      • (1).与Dao同级创建一个类 config.MpConfig
      • (2).Test类方法
    • 4.DQL编程控制
      • (1).条件查询
      • (2).查询投影
      • (3).查询条件设置
      • (4).字段映射与表名映射
    • 5.DML编程控制
      • (1).id生成策略控制
      • (2).多记录操作
      • (3).逻辑删除
      • (4).乐观锁
    • 6.快速开发
      • (1).代码生成器
        • ①:创建类
        • ②:设置全局配置
        • ③:设置包名相关配置
        • ④:策略设置
  • 十一、Spring Security
    • 1.基本概念
      • (1).认证
      • (2).会话
      • (1).认证


一、Maven

1.Maven的作用

①: 方便快捷的项目管理以来的资源(jar包更新等),避免版本冲突问题
②: 提供标准、统一的项目结构、使项目能够在 eclipse、myeclipse、IDEA都能使用
③: 标准跨平台(Linux、Windows、MacOS)的自动化项目构建方式
在这里插入图片描述
总而言之,我们需要Maven管理庞大的jar包、脱离IDE环境执行构建操作

2.构建

清理: 删除上一次构建的结果,为下一次构建做好准备
编译: Java源程序编译成*.class字节码文件
测试: 运行提前准备好的测试程序
报告: 针对刚才测试的结果生成一个全面的信息
打包:
(1): Java工程: jar包
(2): Web工程: war包
安装: 把一个 Maven工程经过打包操作生成的 jar 包或 war 包存入Maven仓库
部署:
(1): 部署 jar 包: 把一个 jar 包部署到 Nexus 私服服务器上
(2): 部署war包: 借助相关 Maven 插件(例如 cargo), 将 war 包部署到 Tomcat 服务器上

3.依赖

如果A工程里面用到了B工程的类、接口、配置文件等等资源,那我们就可以说A以来B

依赖管理中要解决的具体问题:
(1): jar 包的下载: 使用 Maven 之后,iar 包会从规范的远程仓库下载到本地
(2): jar 包之间的依赖: 通过依赖的传递性自动完成
(3): jar 包之间的冲突: 通过对依赖的配置进行调整,让某些 jar 包不会被导入

4.Maven的工作机制

Java后端开发(Maven、Mybatis、Mybatis Plus_第1张图片


二、Maven核心程序配置

着重关注Maven核心配置文件: conf/settings.xml

1.指定本地仓库

conf/settings.xml 当中,默认是注释的。仓库路径在C盘
Java后端开发(Maven、Mybatis、Mybatis Plus_第2张图片

2.配置阿里云提供的镜像仓库

Java后端开发(Maven、Mybatis、Mybatis Plus_第3张图片

3.配置Maven工程的基础JDK版本

Java后端开发(Maven、Mybatis、Mybatis Plus_第4张图片

4.检查 JAVA_HOME 配置是否正确

命令符三问
java -version
echo %JAVA_HOME%
echo %PATH%

5.配置 MAVEN_HOME

教程一堆不赘述、最后命令符mvn -v验证


三、Maven:命令行环境

1.Maven核心概念:坐标

(1).向量说明
使用三个 向量Maven的仓库唯一的定位到一个 jar 包。
groupld: 公司或组织的 id.
artifactld: 一个项目或者是项目中的一个模块的 id.
version: 版本号
例如:
Java后端开发(Maven、Mybatis、Mybatis Plus_第5张图片
(2).坐标和仓库中 jar 包的存储路径之间对应关系
Java后端开发(Maven、Mybatis、Mybatis Plus_第6张图片
能够看到坐标一层层对应着路径、重点
Maven核心程序、Maven本地仓库、本地工作空间。三个目录并不是同一个

2.Maven核心概念:POM

(1).含义
POM: 项目对象模型
DOM: 文档对象模型
它们都是模型化思想的具体体现

(2).对应配置文件
POM理念集中体现在 Maven 工程根目录下 pom.xml 配置文件中

3.Maven核心概念:约定的目录结构

(1).各个目录结构的作用
Java后端开发(Maven、Mybatis、Mybatis Plus_第7张图片

4.主体程序

Java后端开发(Maven、Mybatis、Mybatis Plus_第8张图片

主体程序指的是被测试的程序、同时也是将来在项目中真正要使用的程序

5.Maven的构建命令

Java后端开发(Maven、Mybatis、Mybatis Plus_第9张图片


四、Maven:IDEA

1.创建Maven项目

配置Maven: IDEA3.6.2及以上版本存在兼容性问题、为避免冲突、IDEA使用3.6.1
创建空项目: ctrl + shift + alt + s
Java后端开发(Maven、Mybatis、Mybatis Plus_第10张图片
新版本创建Maven方式!
Java后端开发(Maven、Mybatis、Mybatis Plus_第11张图片
target里面存放着我们程序的字节码文件!
在这里插入图片描述

2.导入Maven项目

选择pom文件就行
Java后端开发(Maven、Mybatis、Mybatis Plus_第12张图片

关于依赖项报错的

Java后端开发(Maven、Mybatis、Mybatis Plus_第13张图片


五、依赖管理

1.依赖配置

依赖:指当前项目运行所需要的jar包,一个项目中可以引入多个依赖
配置:
(1). 在 pom.xml 中编写 < dependencies > 标签
(2). 在 < dependencies > 标签中 使用 < dependency > 引入坐标
(3). 定义坐标的 groupld,artifactld,version
(4). 点击刷新按钮,引入最新加入的坐标

<dependencies>
    <dependency>
        <groupId>ch.qos.logbackgroupId>
        <artifactId>logback-classicartifactId>
        <version>1.2.3version>
    dependency>
dependencies>

依赖项大全 : 依赖项仓库

引入完新的依赖项坐标、记得右上角重置标志点一下才能起作用
如果引入的依赖,在本地仓库不存在,将会连接远程仓库/中央仓库,然后下载依赖。
(这个过程会比较耗时,耐心等待)

2.依赖传递

Java后端开发(Maven、Mybatis、Mybatis Plus_第14张图片
排除依赖
排除依赖指主动断开以来的资源,被排除的资源无需指定版本

 <dependency>
            <exclusions>
                <exclusion>
            <groupId>junitgroupId>
            <artifactId>junitartifactId>

            exclusions>
            exclusions>
        dependency>

junit的位置可以写想取消依赖项名称

3.依赖范围

依赖的jar包,默认情况下,可以在任何地方使用。可以通过< scope >...设置其作用范围作用范围:
主程序范围有效。(main文件夹范围内)
测试程序范围有效。(test文件夹范围内)
是否参与打包运行。(package指令范围内)

<dependencies>
    <dependency>
        <groupId>ch.qos.logbackgroupId>
        <artifactId>logback-classicartifactId>
        <version>1.2.3version>
        <scope>testscope> 
    dependency>
dependencies>

Java后端开发(Maven、Mybatis、Mybatis Plus_第15张图片
Java后端开发(Maven、Mybatis、Mybatis Plus_第16张图片

4.生命周期

Maven的生命周期就是为了对所有的maven项目构建过程进行抽象和统一。
Maven中有三套相互独立的生命周期:
Java后端开发(Maven、Mybatis、Mybatis Plus_第17张图片
具体的生命周期有非常多的阶段、我们具体研究五个阶段:
Java后端开发(Maven、Mybatis、Mybatis Plus_第18张图片
clean 属于 clean 生命周期、 其余属于default 生命周期
同一套生命周期中、当运行后面的阶段时、前面的阶段都会运行
Java后端开发(Maven、Mybatis、Mybatis Plus_第19张图片


六、Web后端开发入门

Java后端开发(Maven、Mybatis、Mybatis Plus_第20张图片
所以说,spring通过反射、工厂模式、xml
Java后端开发(Maven、Mybatis、Mybatis Plus_第21张图片

1.SpringBootWeb Demo

Spring Framework配置繁琐、市场流行和官方推荐都适用SpringBoot
简单的Springbootweb流程:
Java后端开发(Maven、Mybatis、Mybatis Plus_第22张图片
Java后端开发(Maven、Mybatis、Mybatis Plus_第23张图片
Java后端开发(Maven、Mybatis、Mybatis Plus_第24张图片

2.HTTP协议

HTTP协议规定了浏览器和服务器之间数据传输的规则
(1). 基于TCP协议: 面向连接,安全
(2). 基于请求-响应模型的:一次请求对应一次响应
(3). HTTP协议是无状态的协议: 对于事务处理没有记忆能力。每次请求-响应都是独立的。
缺点: 多次请求间不能共享数据。
优点: 速度快

3.响应协议

Java后端开发(Maven、Mybatis、Mybatis Plus_第25张图片
Java后端开发(Maven、Mybatis、Mybatis Plus_第26张图片
常见的响应状态码可以自己去搜索对照

4.Web服务器 - Tomcat

最基本的协议是在Java网络编程的时候手动写入
Web服务器是一个软件程序,对HTTP协议的操作进行封装,使得程序员不必直接对协议进行操作,让Web开发更加便捷主要功能是“提供网上信息浏览服务”。

Tomcat
一个轻量级的web服务器,支持servlet、jsp等少量javaEE规范
也被称为web容器、servlet容器。
Java后端开发(Maven、Mybatis、Mybatis Plus_第27张图片
Java后端开发(Maven、Mybatis、Mybatis Plus_第28张图片
两个问题注意一下: 端口占用、配置是否正确

Tomcat配置端口号:
Java后端开发(Maven、Mybatis、Mybatis Plus_第29张图片
项目部署: 将项目放置到webapps目录下,即部署完成

5.SpringBootWeb请求响应

在这里插入图片描述
Java后端开发(Maven、Mybatis、Mybatis Plus_第30张图片

七、请求

1.postman

可以把postman当作是客户端或者是浏览器、在后端开发的时候用来测试代码
Postman是一款功能强大的网页调试与发送网页HTTP请求的Chrome插件
作用: 常用于进行接口测试

原始的方式、获取请求参数要通过HttpServletRequest方法

public class RequestController {
           @RequestMapping("/simpleParam")
           public String simpleParam(HttpServletRequest request){
           String name =  request.getParameter("name");
           String ageStr = request.getParameter("age");
            int age =  Integer.parseInt(ageStr);
            System.out.println(name + ":" + age);
            return "OK";
        }

SpringBoot方式

  @RequestMapping("/simpleParam")
    public  String simpleParam(String name, Integer age){
            System.out.println(name + ":" + age);
            return "ok";
        }

postman当中post请求的操作方式:
Java后端开发(Maven、Mybatis、Mybatis Plus_第31张图片

2.简单参数

在springboot里面编写的获取请求参数名通常要跟post中的key一样、否则接收不到就是null
Java后端开发(Maven、Mybatis、Mybatis Plus_第32张图片
如果你希望springboot当中的参数名与postman当中不同也是可以的、需要用到 @RequestParam
Java后端开发(Maven、Mybatis、Mybatis Plus_第33张图片
@RequestParam 中的 required 属性默认为true,代表该请求参数必须传递,如果不传递将报错。如果该参数是可选的,以将required属性设置为false
Java后端开发(Maven、Mybatis、Mybatis Plus_第34张图片
Java后端开发(Maven、Mybatis、Mybatis Plus_第35张图片

3.实体参数

由于参数量大、属性多、所以可以在IDEA包装成一个实体类并封装、把所有的属性都存进去。切记要同名!
若类当中的属性还有实体类、可以采用以下方式:
规则: 请求参数名与形参对象属性名相同,即可直接通过POJO接收
Java后端开发(Maven、Mybatis、Mybatis Plus_第36张图片

4.数组集合参数

数组参数: 请求参数名与形参数组名称相同且请求参数为多个,定义数组类型形参即可接收参数
Java后端开发(Maven、Mybatis、Mybatis Plus_第37张图片
Java后端开发(Maven、Mybatis、Mybatis Plus_第38张图片

集合参数: 集合参数: 请求参数名与形参集合名称相同且请求参数为多个,@RequestParam 绑定参数关系
Java后端开发(Maven、Mybatis、Mybatis Plus_第39张图片
postman 请求参数和数组一样。

5.日期参数

Java后端开发(Maven、Mybatis、Mybatis Plus_第40张图片

6.Json参数

记得其中的内容用双引号标记
JSON参数: JSON数据键名与形参对象属性名相同,定义POJO类型形参即可接收参数,需要使用 @RequestBody 标识
Java后端开发(Maven、Mybatis、Mybatis Plus_第41张图片
Java后端开发(Maven、Mybatis、Mybatis Plus_第42张图片

7.路径参数:

单个参数:
Java后端开发(Maven、Mybatis、Mybatis Plus_第43张图片
多个参数:
Java后端开发(Maven、Mybatis、Mybatis Plus_第44张图片

8.参数总结

Java后端开发(Maven、Mybatis、Mybatis Plus_第45张图片

八、响应数据

1.响应模式

类型: 方法注解、类注解
位置: Controller方法上/类上
作用: 将方法返回值直接响应,如果返回值类型是 实体对象/集合,将会转换为]SON格式响应
说明: @RestController = @Controller + @ResponseBody ;

在我们响应给前端数据的时候、是可以返回各种各样的数据的。
这样不便于开发管理、前端还需要花时间解析,效率很低。因此我们采用一套格式:
创建一个Result类,统一形式来返回结果
Java后端开发(Maven、Mybatis、Mybatis Plus_第46张图片

2.三层架构

controller: 控制层,接收前端发送的请求,对请求进行处理,并响应数据。
service: 业务逻辑层,处理具体的业务逻辑。
dao: 数据访问层(Data Access object)(持久层),负责数据访问操作,包括数据的增、删、改、查。

Java后端开发(Maven、Mybatis、Mybatis Plus_第47张图片

3.分层解耦

内聚: 软件中各个功能模块内部的功能联系
耦合: 衡量软件中各个层/模块之间的依赖、关联的程度
软件设计原则: 高内聚低耦合
Java后端开发(Maven、Mybatis、Mybatis Plus_第48张图片

4.IOC & DI 入门

控制反转:
在要交给IOC容器管理的类上方注释 @Component 该类就会变成IOC容器中的Bean
依赖注入:
在需要创建接口类型实例的语句上方注释 @Autowired IOC容器会提供该类型的Bean对象,并赋值给该变量

如果一个接口有几个方法、那该如何控制运行的时候具体走哪一个实例呢?
只需要把你想用的方法注释@Component交给IOC、不用的把注释给删了就可以

Java后端开发(Maven、Mybatis、Mybatis Plus_第49张图片

注:
(1). 声明bean的时候,可以通过value属性指定bean的名字,如果没有指定,默认为类名首字母小写。
(2). 使用以上四个注解都可以声bean,但是在springboot集成web开发中,声明控制器bean只能用@Controller.

5.Bean的组件扫描

(1). 前面声明bean的四大注解,要想生效,还需要被组件扫描注解@ComponentScan扫描
(2). @ComponentScan注解虽然没有显式配置,但是实际上已经包含在启动类声明注解 @SpringBootApplication中,默认扫描的范围是启动类所在包及其子包。
@SpringBootApplication 默认扫描当前包及其子包
如果你要调用的Bean类不在同一个包下,就使用:
@ComponentScan{(“要扫描的包,要扫描的包,还是要扫描的包…”)}

6.DI详解

第4点中提到、如果一个接口只能有一个方法去交给IOC、如果是有两个方法必须有一个删掉或者注释掉。
这种情况有几种解决方案:
@Primary: 如果你在多个同类型的Bean类前都加了一样的注释、那么你可以再加一个Primary、哪个类加了Primary就代表要使用哪个类
Java后端开发(Maven、Mybatis、Mybatis Plus_第50张图片
@Autowired + @Qualifier: 主要是按照注解来进行注入 在Controller 类中变量前加入 Qualifier(“Bean类名”)
注意: 这里面填入Bean类名的时候默认是首字母小写的
Java后端开发(Maven、Mybatis、Mybatis Plus_第51张图片

@Resource: 主要是按照名称来进行注入
Java后端开发(Maven、Mybatis、Mybatis Plus_第52张图片


九、Mybatis

1.入门流程

(1). 准备工作(创建springboot工程、数据库表xxx、实体类xxx)
(2). 引入Mybatis的相关依赖,配置Mybatis(数据库连接信息)
(3). 先配置好你的sql
Java后端开发(Maven、Mybatis、Mybatis Plus_第53张图片
(4). 创建springboot项目
Java后端开发(Maven、Mybatis、Mybatis Plus_第54张图片
(5). 根据自身情况配置好resources

# 配置数据库的连接信息
# 在resources文件下的 application.properties 文件中配置
# 驱动类名称
spring.datasource.driver-class-name = com.mysql.cj.jdbc.Driver
# 数据库连接的URL
spring.datasource.url = jdbc:mysql://localhost:3306
# 连接数据库的用户名
spring.datasource.username=root
# 连接数据库时的密码
spring.datasource.password=528339

(6). 创建一个JavaBean类、类中成员对应数据库中数据类型
写一下get、set、toString、有参、无参构造器
Java后端开发(Maven、Mybatis、Mybatis Plus_第55张图片
(7). 编写查询方法
这里时自动创建了一个 UserMapper 类型对象,而且放到IOC容器中
Java后端开发(Maven、Mybatis、Mybatis Plus_第56张图片
(8). 测试
Java后端开发(Maven、Mybatis、Mybatis Plus_第57张图片
(9). 文件位置之分配
Java后端开发(Maven、Mybatis、Mybatis Plus_第58张图片

2.配置SQL提示

Java后端开发(Maven、Mybatis、Mybatis Plus_第59张图片
此时表明还是报红、因为IDEA和数据库没有建立连接,不识别表信息
因此我们需要配置IDEA中MySQL数据库连接
Java后端开发(Maven、Mybatis、Mybatis Plus_第60张图片

3.JDBC

sun公司提供的一套操作关系型数据库的API(规范)
(1). sun公司官方定义的一套操作所有关系型数据库的规范,即接口。
(2). 各个数据库厂商去实现这套接口,提供数据库驱动jar包
(3). 我们可以使用这套接口(DBC)编程,真正执行的代码是驱动iar包中的实现类

4.数据库连接池

(1). 数据库连接池是个容器,负责分配、管理数据库连接(Connection)
(2). 它允许应用程序重复使用一个现有的数据库连接,而不是再重新建立一个
(3). 释放空闲时间超过最大空闲时间的连接,来避免因为没有释放连接而引起的数据库连接遗漏

在以往客户端需要新建一个连接对象、然后执行SQL语句、执行完毕了之后需要关闭连接来释放资源
每次都需要新建、使用、关闭是很浪费资源的!
如果有了连接池、那么程序就会初始化一系列的连接对象、当对象执行SQL语句的时候
它就会自动从连接池中获取一个连接、执行语句、然后把连接归还给连接池、这样来做到连接的复用
而不是每次都需要新建连接。如果有某一个对象获取了连接但是却一直没有操作数据库(占着茅坑不拉屎)
那么只要空闲时间超出了连接池规定的最大时间,这个连接将会释放。

优势:
资源重用、提升系统响应速度、避免数据库连接遗漏

标准接口: DataSource
官方(sun)提供的数据库连接池接口,由第三方组织实现此接口
功能:获取连接 Connection getConnection() throws SOLException;
Java后端开发(Maven、Mybatis、Mybatis Plus_第61张图片

5.lombok

Lombok是一个实用的ava类库,能通过注解的形式自动生成构造器、getter/setter、equals、hashcode、toString
等方法,并可以自动化生成日志变量,简化java开发、提高效率。
以往创建Javabean类的时候太繁琐、各种重写、构造器、getxx、setxx
Java后端开发(Maven、Mybatis、Mybatis Plus_第62张图片
引入:

<dependency>
			<groupId>org.projectlombokgroupId>
			<artifactId>lombokartifactId>
		dependency>

6.Mybatis基础操作(curd)

(1).删除语句:

在这里插入图片描述
Java后端开发(Maven、Mybatis、Mybatis Plus_第63张图片
Java后端开发(Maven、Mybatis、Mybatis Plus_第64张图片
注意事项:
如果mapper接口方法形参只有一个普通类型的参数,#{...}小里面的属性名可以随便写,如: #{id}、#{value}

(2).Mybatis日志输出:

Java后端开发(Maven、Mybatis、Mybatis Plus_第65张图片

(3).预编译SQL:

优势: 性能更高、更安全(防止SQL注入)
SQL注入 :SQL注入是通过操作输入的数据来修改事先定义好的SQL语句、
以达到执行代码对服务器进行攻击的方法
Java后端开发(Maven、Mybatis、Mybatis Plus_第66张图片
Java后端开发(Maven、Mybatis、Mybatis Plus_第67张图片

(4).参数占位符 :

在这里插入图片描述

(5).增加语句:

Java后端开发(Maven、Mybatis、Mybatis Plus_第68张图片
左边是Javabean类、右边是接口方法
Java后端开发(Maven、Mybatis、Mybatis Plus_第69张图片

注意: 在SQL表命名数据名经常会使用下划线,但JavaBean当中一般不会用下划线
因此: SQL: dept_id 在写接口方法的时候 要写成驼峰命名 deptId

在真正实施插入方法的时候、我们通常会将所有数据在方法中包装起来、方法形参写我们的包装类
Java后端开发(Maven、Mybatis、Mybatis Plus_第70张图片

Java后端开发(Maven、Mybatis、Mybatis Plus_第71张图片

(6).更改语句:

接口定义: 测试时与增加语句中一样、包装进类当中然后调用接口对象方法
在这里插入图片描述

(7).查询语句:

根据ID查询:
在这里插入图片描述
但是查询之后我们会发现我们的时间都显示为null、并没有获取到

(8).数据封装:

实体类属性名和数据库表查询返回的字段名一致,mybatis会自动封装
如果实体类属性名和数据库表查询返回的字段名不一致,不能自动封装

Java后端开发(Maven、Mybatis、Mybatis Plus_第72张图片

方法一: 将 * 改成我们数据库表格字段的名字、在后面加上驼峰命名(起别名) 这样就能自动封装获取到信息
在这里插入图片描述
方法二(繁琐很少用): 通过Mybatis的注解 @Results , @Result注解手动映射封装
Java后端开发(Maven、Mybatis、Mybatis Plus_第73张图片
方法三: 开启Mybatis的驼峰命名自动映射开关 它能够自动把 a_show 封装成 aShow
在 application.properties 中打出下列代码 之后你只需要按平常的方式去查询、他一样能给你输出有下划线的字段
在这里插入图片描述

(8).条件查询:

Java后端开发(Maven、Mybatis、Mybatis Plus_第74张图片
我们知道 使用 $ 会出现SQL注入问题、性能i的又不安全
所以我们又想出一个方法、那就是使用函数 concat() 拼接 预编译 #{}
在这里插入图片描述

(9).不同版本的区别:

Java后端开发(Maven、Mybatis、Mybatis Plus_第75张图片

7.XML映射文件

Java后端开发(Maven、Mybatis、Mybatis Plus_第76张图片

(1).在 resources 中先建立同包同名文件

然后new file 一个 与接口同名的xml文件
Java后端开发(Maven、Mybatis、Mybatis Plus_第77张图片

(2).在 xml 当中配置

Java后端开发(Maven、Mybatis、Mybatis Plus_第78张图片


DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.gangan.mapper.UserMapper">

mapper>

(3).使用XML

在这里插入图片描述
Java后端开发(Maven、Mybatis、Mybatis Plus_第79张图片

(4).安装Mybatisx插件

(5).XML 和 注释响应模式

如果是简单的CURD可以采用注释来完成、如果是复杂的程序最好是使用XML配置

(5).动态SQL

①:< if > 和 < where >

Java后端开发(Maven、Mybatis、Mybatis Plus_第80张图片

②:< set >

Java后端开发(Maven、Mybatis、Mybatis Plus_第81张图片

③:< foreach >

Java后端开发(Maven、Mybatis、Mybatis Plus_第82张图片

Java后端开发(Maven、Mybatis、Mybatis Plus_第83张图片
Java后端开发(Maven、Mybatis、Mybatis Plus_第84张图片

④:< sql > 和 < include >

Java后端开发(Maven、Mybatis、Mybatis Plus_第85张图片


十、Mybatis Plus

说明: Mybatis Plus是基于Mybatis框架基础上开发的增强型工具、旨在简化开发、提高效率。

开发方式:
基于 MyBatis 使用 MyBatisPlus
基于 Spring 使用 MyBatisPlus
基于 SpringBoot 使用 MyBatisPlus

1.新建

(1).导入 jar 包

		<dependency>
        <groupId>com.baomidougroupId>
        <artifactId>mybatis-plus-boot-starterartifactId>
		<version>3.4.1version>
		  dependency>

(2).导入 druid 数据库连接池(第九章第四点)

<dependency>
            <groupId>com.alibabagroupId>
            <artifactId>druidartifactId>
            <version>1.1.16version>
    dependency>

修改 application.properties为 application.yml 详情
同时并配置 application.yml

spring:
  datasource:
    type: com.alibaba.druid.pool.DruidDataSource  # 数据库连接池
    driver-class-name: com.mysql.cj.jdbc.Driver   
    url: jdbc:mysql://localhost:3306/db01  # 表路径
    username: root
    password: 528339

(3).创建DAO、实例类、Test类

Java后端开发(Maven、Mybatis、Mybatis Plus_第86张图片
Java后端开发(Maven、Mybatis、Mybatis Plus_第87张图片
Java后端开发(Maven、Mybatis、Mybatis Plus_第88张图片

2.标准数据层CRUD功能

Java后端开发(Maven、Mybatis、Mybatis Plus_第89张图片
Java后端开发(Maven、Mybatis、Mybatis Plus_第90张图片

3.分页查询

(1).与Dao同级创建一个类 config.MpConfig

Java后端开发(Maven、Mybatis、Mybatis Plus_第91张图片

(2).Test类方法

Java后端开发(Maven、Mybatis、Mybatis Plus_第92张图片

4.DQL编程控制

Springboot每次输出都一堆废话、因此我们可以在
application.properties中输入以下两条语句:
mybatis-plus.global-config.banner=false
spring.main.banner-mode=off
在同包resources下建立 logback.xml,这样控制台输出内容就没有废话了
在这里插入图片描述

(1).条件查询

MyBatisPlus将书写复杂的SOL查询条件进行了封装,使用编程的形式完成查询条件的组合
第一种:
Java后端开发(Maven、Mybatis、Mybatis Plus_第93张图片
第二种:
Java后端开发(Maven、Mybatis、Mybatis Plus_第94张图片
第三种:
LamdaQuerWrapper就像一个添加条件的对象,你把条件都添加进去、查询它等于查询后加where限制
Java后端开发(Maven、Mybatis、Mybatis Plus_第95张图片
存在多个要求的情况下:
Java后端开发(Maven、Mybatis、Mybatis Plus_第96张图片
查询条件关于null值处理:
Java后端开发(Maven、Mybatis、Mybatis Plus_第97张图片

(2).查询投影

Java后端开发(Maven、Mybatis、Mybatis Plus_第98张图片
Java后端开发(Maven、Mybatis、Mybatis Plus_第99张图片

(3).查询条件设置

Java后端开发(Maven、Mybatis、Mybatis Plus_第100张图片
范围查询
Java后端开发(Maven、Mybatis、Mybatis Plus_第101张图片
信息查询
Java后端开发(Maven、Mybatis、Mybatis Plus_第102张图片

(4).字段映射与表名映射

Java后端开发(Maven、Mybatis、Mybatis Plus_第103张图片

5.DML编程控制

(1).id生成策略控制

可以在application中配置全局文件:
mybatis-plus.global-config.db-config.id-type: assign_id
Java后端开发(Maven、Mybatis、Mybatis Plus_第104张图片

(2).多记录操作

Java后端开发(Maven、Mybatis、Mybatis Plus_第105张图片

(3).逻辑删除

有些数据、是不能真的删除掉的。可能目前没有作用但是往后有很重要的作用。但为了不影响我们使用
我们可以逻辑上删除、加一条字段做一个标记,来表示它其实已经作废了。

Java后端开发(Maven、Mybatis、Mybatis Plus_第106张图片
当项目中类很多的时候、经典全局配置一下
Java后端开发(Maven、Mybatis、Mybatis Plus_第107张图片

(4).乐观锁

Java后端开发(Maven、Mybatis、Mybatis Plus_第108张图片
Java后端开发(Maven、Mybatis、Mybatis Plus_第109张图片

如果乐观锁永远是1、那每一条线程都能够得到了。也就失去了意义,它实质上是每当有人拿到锁
都会 version = version + 1 这样一来,锁一直在变化,每次也就一个人能使用了

6.快速开发

(1).代码生成器

模板: MyBatisPlus提供
数据库相关配置: 读取数据库获取信息
开发者自定义配置: 手工配置

 
        <dependency>
            <groupId>com.baomidougroupId>
            <artifactId>mybatis-plus-generatorartifactId>
            <version>3.5.2version>
        dependency>
        
        <dependency>
            <groupId>org.apache.velocitygroupId>
            <artifactId>velocity-engine-coreartifactId>
            <version>2.3version>
        dependency>

①:创建类

Java后端开发(Maven、Mybatis、Mybatis Plus_第110张图片

②:设置全局配置

Java后端开发(Maven、Mybatis、Mybatis Plus_第111张图片

③:设置包名相关配置

Java后端开发(Maven、Mybatis、Mybatis Plus_第112张图片

④:策略设置

Java后端开发(Maven、Mybatis、Mybatis Plus_第113张图片


十一、Spring Security

1.基本概念

(1).认证

用户认证就是判断一个用户的身份是否合法的过程。用户访问系统资源时,系统要求验证身份的信息,如用户名密码、二维码登录、手机短信登录、指纹认证

(2).会话

为避免用户的每次操作都需要进行认证,可以将用户的信息保证在会话中。你可以理解为记住密码
保持当前用户的登陆状态,常见的有基于session方式、基于token方式等

(1).认证

你可能感兴趣的:(java,开发语言,spring,spring,boot,maven)