MybatisPlus简单使用与自定义sql以及通过自定义sql实现多表联查的分页查询

news2025/1/20 1:43:29

MybatisPlus简单使用与自定义sql以及通过自定义sql实现多表联查的分页查询

  • 前言
  • 1. mybatis的简单使用
  • 2. MybatisPlus 的简单使用
    • 2.1 入门
      • 2.1.1 简单配置
      • 2.1.2 入门例子
      • 2.1.3 测试
    • 2.2 MybatisPlus自带封装的增删改查
      • 2.2.1 傻瓜式使用
      • 2.2.2 批量添加数据
  • 3 MybatisPlus 动态查询sql
    • 3.1 QueryWrapper 或 LambdaQueryWrapper 条件构造器
      • 3.1.1 QueryWrapper
      • 3.1.2 LambdaQueryWrapper
    • 3.2 自定义 sql 语句
      • 3.2.1 xml方式
      • 3.2.2 @Select 注解
      • 3.2.3 LambdaQueryWrapperX 拼接sql
      • 3.2.4 @SelectProvider 注解
        • 3.2.4.1 直接 @SelectProvider
        • 3.2.4.2 QueryWrapper + @SelectProvider
          • 1. ${ew.customSqlSegment}
          • 2. ${ew.sqlSegment}
  • 4. 优化代码->统一一下返回格式
  • 5.MybatisPlus 实现分页( Page 与 IPage)
    • 5.1 对分页插件进行初始化配置
    • 5.2 使用分页例子
      • 5.2.1 简单免写sql分页
      • 5.2.2 优化-Page分页传参和返回结果统一格式
      • 5.2.3 简单分页测试->统一分页格式之后
    • 5.3 自定义sql实现分页
      • 5.3.1 @Select+ Page 实现分页查询
      • 5.3.2 @SelectProvider + Page 实现分页查询
        • 5.3.2.1 基本数据类型作为参数情况
        • 5.3.2.2 实体对象作为参数情况(注意)
    • 5.4 关于多表联查实现分页

前言

  • 之前介绍过mybatis,但是感觉缺少点什么,所以想想还是周末抽空写了点把mybatisplus给补上

1. mybatis的简单使用

  • 关于mybatis自定义枚举类型的转换器相关的点,可以看下面的文章
    mybatis自定义枚举类型的转换器以及各种使用场景.
  • 关于mybatis使用插件pagehelper分页的,这个看文章:
    springboot项目前后端分离:统一返回数据格式+mybatis 分页.

2. MybatisPlus 的简单使用

2.1 入门

  • 下面是以spring boot项目为例简单做简单的例子介绍

2.1.1 简单配置

  • 如下
    1. pom 依赖
      <dependency>
          <groupId>com.baomidou</groupId>
          <artifactId>mybatis-plus-boot-starter</artifactId>
          <version>3.5.2</version>
      </dependency>
      
      在这里插入图片描述
    2. 配置,入门配置所以配的很简单
      mybatis-plus:
        configuration:
          map-underscore-to-camel-case: true
      
    在这里插入图片描述

2.1.2 入门例子

  1. 实体:DogEntity.java
    package com.liu.susu.pojo.entity;
    
    import com.baomidou.mybatisplus.annotation.IdType;
    import com.baomidou.mybatisplus.annotation.TableId;
    import com.baomidou.mybatisplus.annotation.TableName;
    import lombok.Data;
    
    @TableName("dog")
    @Data
    public class DogEntity {
    
        @TableId(type = IdType.ASSIGN_ID)
        private String id;
    
        private String dogName;
    
        private String dogSex;
    
        private String kennelsNum;
    
    }
    
  2. DogMapper.java(直接extends BaseMapper,后面简单的sql就不用写了,页不用写xml文件了)
    package com.liu.susu.mapper;
    	
    import com.baomidou.mybatisplus.core.mapper.BaseMapper;
    import com.liu.susu.pojo.entity.DogEntity;
    import org.apache.ibatis.annotations.Mapper;
    
    @Mapper
    public interface DogMapper extends BaseMapper<DogEntity> {
    
    }
    
    在这里插入图片描述
  3. DogService.java
    在这里插入图片描述
  4. DogServiceImpl.java
    在这里插入图片描述
  5. DogController.java
    在这里插入图片描述

2.1.3 测试

  • 如下:
    在这里插入图片描述

2.2 MybatisPlus自带封装的增删改查

2.2.1 傻瓜式使用

  1. 上面我们已经介绍了一个查询,其实没啥可说的,想用什么方法直接就能.出来,我们这里就提一嘴:
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

2.2.2 批量添加数据

  1. 主要向想说的是另外一个,批量添加,怎么用自带的方法实现批量插入数据,看下面介绍:
    • ① 修改DogService.java,如下:
      在这里插入图片描述
    • ② 修改DogServiceImpl.java,如下:
      在这里插入图片描述
  2. 修改完上述代码怎么用,下面来个测试看看
    • 代码:
      在这里插入图片描述
    • 效果:
      在这里插入图片描述
      在这里插入图片描述
  3. 注意:
  • 上述例子插入的数据量少,如果批量插入数据量多的话,可以换个方法控制每次插入的条数:
    在这里插入图片描述

3 MybatisPlus 动态查询sql

3.1 QueryWrapper 或 LambdaQueryWrapper 条件构造器

3.1.1 QueryWrapper

  • 傻瓜式使用操作,直接给图看吧:
    在这里插入图片描述

3.1.2 LambdaQueryWrapper

  • 如图:
    在这里插入图片描述

3.2 自定义 sql 语句

3.2.1 xml方式

  • 太常用了,不介绍了,看mybatis

3.2.2 @Select 注解

  • 直接看图:
    在这里插入图片描述

3.2.3 LambdaQueryWrapperX 拼接sql

  • 如图:
    在这里插入图片描述
    在这里插入图片描述

3.2.4 @SelectProvider 注解

3.2.4.1 直接 @SelectProvider

  1. DogProvide.java
    在这里插入图片描述

  2. DogMapper.java
    在这里插入图片描述

  3. DogServiceImpl.java
    在这里插入图片描述

  4. 看效果:
    在这里插入图片描述

3.2.4.2 QueryWrapper + @SelectProvider

1. ${ew.customSqlSegment}
  • ${ew.customSqlSegment} 自动拼接上where 关键字
  • DogProvide.java
    在这里插入图片描述
  • DogMapper.java
    在这里插入图片描述
  • DogServiceImpl.java
    在这里插入图片描述
  • 看效果:
    在这里插入图片描述
2. ${ew.sqlSegment}
  • ${ew.sqlSegment} 是不拼接 where 关键字的条件sql
    在这里插入图片描述
    在这里插入图片描述

4. 优化代码->统一一下返回格式

  1. ResponseCode.java
    package com.liu.susu.common;
    
    /**
     * description
     * @author susu
     **/
    public enum ResponseCode {
        SUCCESS_000000("000000","操作成功"),
        INSERT_SUCCESS("000000","新增成功"),
        UPDATE_SUCCESS("000000","修改成功"),
        DELETE_SUCCESS("000000","删除成功"),
        SELECT_SUCCESS("000000","查询成功"),
        SELECT_SUCCESS_NO_DATA("000001","查无数据"),
    
        INSERT_FAIL("100000","新增失败"),
        UPDATE_FAIL("100000","修改失败"),
        DELETE_FAIL("100000","删除失败"),
        SELECT_FAIL("100000","查询失败"),
    
        FAIL_NO_PARAM("200001","参数不能为空"),
    
        FAIL_999998("999998","操作失败"),
        FAIL_999999("999999","系统异常");
    
        private final String code;
        private final String message;
    
        ResponseCode(String code, String message){
            this.code = code;
            this.message = message;
        }
    
        public String getCode(){
            return code;
        }
    
        public String getMessage(){
            return message;
        }
    
    }
    
  2. ResponseData.java
    package com.liu.susu.common;
    
    import lombok.AllArgsConstructor;
    import lombok.Data;
    import lombok.NoArgsConstructor;
    import org.apache.commons.lang.StringUtils;
    
    
    /**
     * description
     * @author susu
     **/
    @NoArgsConstructor
    @AllArgsConstructor
    @Data
    public class ResponseData<T> {
    
        private String code;
        private String message;
        private T data;
    
    
        public static<T> ResponseData<T> returnResult(){
            return returnResult(ResponseCode.SUCCESS_000000);//默认成功
        }
    
        public static<T> ResponseData<T> returnResult(ResponseCode responseCode) {
            ResponseData<T> responseData = new ResponseData<>();
            responseData.setCode(responseCode.getCode());
            responseData.setMessage(responseData.getMessage());
            return responseData;
        }
    
        public static<T> ResponseData<T> returnResult(ResponseCode responseCode, String message) {
            ResponseData<T> responseData = new ResponseData<>();
            responseData.setCode(responseCode.getCode());
            message = StringUtils.isNotEmpty(message)?message: responseCode.getMessage();
            responseData.setMessage(message);
            return responseData;
        }
    
        public static<T> ResponseData<T> returnResult(ResponseCode responseCode, T data) {
            ResponseData<T> responseData = returnResult(responseCode);
            responseData.setData(data);
            return responseData;
        }
    
        public static <T> ResponseData<T> returnResult(T data) {
            return returnResult(ResponseCode.SUCCESS_000000,data);
        }
    }
    

5.MybatisPlus 实现分页( Page 与 IPage)

5.1 对分页插件进行初始化配置

  • 使用 Page 与 IPage进行分页时,需要先配置
    import com.baomidou.mybatisplus.core.metadata.IPage;
    import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
    
    先配置,否则分页不生效,配置如下:
    package com.liu.susu.common.config;
    
    import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
    import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;
    import org.mybatis.spring.annotation.MapperScan;
    import org.springframework.context.annotation.Bean;
    import org.springframework.context.annotation.Configuration;
    
    @Configuration
    @MapperScan("com.liu.susu.mapper")
    public class MybatisPlusConfig {
    
        @Bean
        public MybatisPlusInterceptor mybatisPlusInterceptor() {
            MybatisPlusInterceptor mybatisPlusInterceptor = new MybatisPlusInterceptor();
    //        mybatisPlusInterceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.ORACLE));
            mybatisPlusInterceptor.addInnerInterceptor(new PaginationInnerInterceptor()); // 分页插件
            return mybatisPlusInterceptor;
        }
    
    }
    
    

5.2 使用分页例子

5.2.1 简单免写sql分页

  1. 代码如下:

    • DogServiceImpl.java
      在这里插入图片描述
      public IPage<DogEntity> getDogPageList_1(int pageNo,int pageSize){
              Page<DogEntity> page = new Page(pageNo,pageSize);
              IPage<DogEntity> pageResult = dogMapper.selectPage(page, null);
              return pageResult;
          }
      
    • DogController.java
      在这里插入图片描述
  2. 效果:
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

5.2.2 优化-Page分页传参和返回结果统一格式

  1. MyPageParam.java

    package com.liu.susu.common.page;
    
    import io.swagger.annotations.ApiModel;
    import io.swagger.annotations.ApiModelProperty;
    import lombok.Data;
    
    import java.io.Serializable;
    
    @ApiModel("分页参数")
    @Data
    public class MyPageParam implements Serializable {
    
        private static final Integer PAGE_NO = 1;
        private static final Integer PAGE_SIZE = 10;
    
        @ApiModelProperty(value = "页码", required = true,example = "1")
        private Integer pageNo = PAGE_NO;
    
        @ApiModelProperty(value = "每页条数", required = true, example = "10")
        private Integer pageSize = PAGE_SIZE;
    
    }
    
  2. MyServletUtils.java
    在这里插入图片描述

    package com.liu.susu.common.utils;
    
    
    import cn.hutool.core.convert.Convert;
    import org.springframework.web.context.request.RequestAttributes;
    import org.springframework.web.context.request.RequestContextHolder;
    import org.springframework.web.context.request.ServletRequestAttributes;
    
    import javax.servlet.http.HttpServletRequest;
    
    public class MyServletUtils {
    
        public static Integer getParameterToInt(String name) {
            RequestAttributes attributes = RequestContextHolder.getRequestAttributes();
            ServletRequestAttributes servletRequestAttributes = (ServletRequestAttributes) attributes;
            HttpServletRequest request = servletRequestAttributes.getRequest();//获取request
            Object value = request.getParameter(name);
            return Convert.toInt(value);
        }
    
    }
    
  3. MyPageResult.java

    package com.liu.susu.common.page;
    
    import io.swagger.annotations.ApiModelProperty;
    import lombok.Data;
    import lombok.NoArgsConstructor;
    
    import java.io.Serializable;
    import java.util.ArrayList;
    import java.util.List;
    
    @NoArgsConstructor
    @Data
    public final class MyPageResult<T> implements Serializable {
    
        @ApiModelProperty(value = "数据", required = true)
        private List<T> list;
    
        @ApiModelProperty(value = "总量", required = true)
        private Long total;
    
        public MyPageResult(List<T> list, Long total) {
            this.list = list;
            this.total = total;
        }
    
        public MyPageResult(Long total) {
            this.list = new ArrayList<>();
            this.total = total;
        }
    
        public static <T> MyPageResult<T> empty() {
            return new MyPageResult<>(0L);
        }
    
        public static <T> MyPageResult<T> empty(Long total) {
            return new MyPageResult<>(total);
        }
    
    }
    
    
  4. MyPageUtils.java

    package com.liu.susu.common.utils;
    
    import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
    import com.liu.susu.common.page.MyPageParam;
    import com.liu.susu.common.page.MyPageResult;
    import java.util.List;
    
    /**
     * description 分页工具类
     * @author susu
     **/
    public class MyPageUtils {
    
        public static final String PAGE_NO = "pageNo";
        public static final String PAGE_SIZE = "pageSize";
    
        public static MyPageParam getMyPageParam() {
            MyPageParam myPageParam = new MyPageParam();
            myPageParam.setPageNo(MyServletUtils.getParameterToInt(PAGE_NO));
            myPageParam.setPageSize(MyServletUtils.getParameterToInt(PAGE_SIZE));
            return myPageParam;
        }
    
        public static <T> Page<T> getMyPage(){
            MyPageParam myPageParam = getMyPageParam();
            Integer pageNo = myPageParam.getPageNo();
            Integer pageSize = myPageParam.getPageSize();
            if (pageNo!=null && pageSize!=null){
                Page<T> page = new Page<>(myPageParam.getPageNo(), myPageParam.getPageSize());
                return page;
            }
            return null;
        }
    
    
       public static <T> MyPageResult<T> getMyPageResult(IPage<T> pageResult){
           if (pageResult != null) {
               return new MyPageResult<>(pageResult.getRecords(), pageResult.getTotal());
           }
           return new MyPageResult<>(null);//没有分页
       }
    
        /**
        * description :获取分页结果
        * @param page
    	* @param list
        * @author susu
        */
        public static <T> MyPageResult<T> getMyPageResult(Page page, List<T> list){
            if (page != null) {
                page.setRecords(list);
                return new MyPageResult<>(page.getRecords(), page.getTotal());
            }
            return new MyPageResult<>(list, null);//没有分页
        }
    
    
    
    }
    
    

5.2.3 简单分页测试->统一分页格式之后

  • 代码如下:
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
  • 效果:
    在这里插入图片描述

5.3 自定义sql实现分页

5.3.1 @Select+ Page 实现分页查询

  • 太简单,直接给图:

    • DogMapper.java(备注:Page page 可以不用加注解@Param
      在这里插入图片描述
    • DogServiceImpl.java
      在这里插入图片描述
    • DogController.java在这里插入图片描述
  • 效果:
    在这里插入图片描述
    在这里插入图片描述

5.3.2 @SelectProvider + Page 实现分页查询

  • 首先先来个vo–>DogInfoVo.java
    package com.liu.susu.pojo.vo;
    
    import io.swagger.annotations.ApiModel;
    import io.swagger.annotations.ApiModelProperty;
    import lombok.Data;
    
    @Data
    @ApiModel("狗狗信息vo")
    public class DogInfoVo {
    
        @ApiModelProperty("id")
        private String id;
    
        @ApiModelProperty("狗狗姓名")
        private String dogName;
    
        @ApiModelProperty("所在犬舍名")
        private String kennelsName;
    
    }
    

5.3.2.1 基本数据类型作为参数情况

  1. 代码如下:
    • DogProvide2.java + DogMapper2.java
      在这里插入图片描述
    • DogController2.java
      在这里插入图片描述
      @ApiOperationSupport(author = "浪花们",order = 1)
          @ApiOperation(value = "查询狗狗")
          @ResponseBody
          @GetMapping("/selectDogs")
          public ResponseData<MyPageResult<DogInfoVo>> selectDogs(@RequestParam("kennelsName") String kennelsName){
              Page<DogInfoVo> myPage = MyPageUtils.getMyPage();
              List<DogInfoVo> dogInfoList = dogMapper2.selectDogs(myPage,kennelsName);
              return ResponseData.returnResult(MyPageUtils.getMyPageResult(myPage,dogInfoList));
          }
      
  2. 效果如下:
    在这里插入图片描述
    在这里插入图片描述

5.3.2.2 实体对象作为参数情况(注意)

  1. 代码如下:
    • DogProvide2.java
      在这里插入图片描述
    • DogMapper2.java
      在这里插入图片描述
  2. 效果如下:
    在这里插入图片描述
    在这里插入图片描述

5.4 关于多表联查实现分页

  • 上面5.3.2 已经实现,可以再点回去看看,还要自定义sql的其实都可以实现多表联查实现分页的,在此不多说了,自己试试吧。
  • 好了,愿每个周末是充实的而不是毫无意义的!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/44098.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

计算机网络---数据链路层扩展的以太网

&#xff08;一&#xff09;在物理层扩展以太网 使用光纤扩展&#xff1a;主机使用光纤和一对光纤调制解调器连接到集线器 使用集线器扩展&#xff1a;主机使用光纤和一对光纤调制解调器连接到集线器 使用集线器扩展的优缺点 优点 &#xff1a;使原来属于不同碰撞域&#xff0…

Nodejs -- Express中间件的概念及基本使用

文章目录1 中间件的概念1.1 什么是中间件1.2 现实生活中的例子1.3 Express中间件的调用流程1.4 Express的中间件的格式1.5 next函数的作用2 Express中间件初体验2.1 定义中间件函数2.2 全局生效的中间件2.3 定义全局中间件的简化形式2.4 中间件的作用2.5 定义多个全局中间件2.6…

机器学习-(手推)线性回归3-正则化-岭回归(Ridge)-频率角度贝叶斯角度

一、正则化-岭回归-频率角度 回顾&#xff1a; Loss Function&#xff1a; 过拟合的解决方法&#xff1a; ①最直接&#xff1a;加数据 ②降维&#xff08;特征选择/特征提取&#xff08;PCA&#xff09;&#xff09; ③正则化&#xff08;对参数空间&#xff0c;例如w的约…

预处理,编译,汇编,链接,全过程。

编译&#xff0c;链接&#xff0c;全过程。背景知识预处理&#xff1a;1.宏定义指令&#xff0c;如#define MAX 1&#xff1b;2.条件编译指令&#xff0c;如#ifdef、 #ifndef、#else、#elif、#endif等。3.头文件包含指令&#xff0c;如#include等。4.特殊符号&#xff0c;预编译…

SQL explain解析器

EXPLAIN 参数前言字段参数id 查询编号select_type 关联类型SIMPLEPRIMARYUNION & UNION RESULTDERIVEDSUBQUERYDEPENDENTUNCACHEABLEMATERIALIZEDtable 表名partitions 数据的分区信息type 关联类型system & consteq_refreffulltextref_or_nullindex_mergeunique_subqu…

必备表格软件-FineReport正则表达式简介

1. 概述 1.1 应用场景 有时候我们需要用到正则表达式进行信息的校验。 例如有一张使用了「文本控件」的查询报表&#xff0c;输入「销售员」姓名后可查询销售员的销售情况&#xff0c;此时希望设置销售员文本控件的填入信息校验内容为&#xff1a;若填入内容不是中文或中文的…

【无标题】接口测试用例设计(精华)

接口测试 请求头 请求头中的Content-Type有哪几种&#xff1a; 1.application/x-www-form-urlencoded 最常见的 POST 提交数据的方式&#xff0c;原生Form表单&#xff0c;如果不设置 enctype 属性&#xff0c;默认为application/x-www-form-urlencoded 方式提交数据。 2.appli…

Node.js 入门教程 19 package-lock.json 文件

Node.js 入门教程 Node.js官方入门教程 Node.js中文网 本文仅用于学习记录&#xff0c;不存在任何商业用途&#xff0c;如侵删 文章目录Node.js 入门教程19 package-lock.json 文件19.1 示例19 package-lock.json 文件 在版本 5 中&#xff0c;npm 引入了 package-lock.json 文…

BUUCTF Reverse/[2019红帽杯]xx

BUUCTF Reverse/[2019红帽杯]xx 先看下文件信息&#xff1a;没有加壳、64位程序 看别人wp时候发现个好东东,就是这个findcrypt插件&#xff0c;可以看加密算法的&#xff0c;具体安装可以看这个IDA7.5安装findcrypt3插件 可以看到这是tea加密 先一点点分析代码&#xff0c;输入…

48.标准输入输出流

标准输入流对象cin&#xff0c;重点掌握的函数&#xff1a; 1.cin.get() //一次只能读取一个字符 2.cin.get(一个参数) //读一个字符 3.cin.get(两个参数) //可以读字符串 这种情况下不会读取换行符&#xff0c;换行符始终留在缓冲区当中 4.cin.getline() 此函数在读取数据的…

跳出打工圈!程序员要如何走上创业逆袭路,获得财富自由

前言 采访了一位创业人物&#xff0c;创业即是人生&#xff0c;生命精彩待续 人生的每一种经历都是一门功课&#xff0c;我们无法跳跃过去&#xff0c;所以必须要逐个地去完成它。无论遇到什么样的困难&#xff0c;自己想通了、走出来了&#xff0c;才会有不一样的自己。 大…

rt-thread通过spi连接W25Q32后无法读取ID

注意&#xff0c;cs引脚必须由rtt控制&#xff0c;但是我这个cs引脚用的是PA15&#xff0c;它默认是jlink的引脚&#xff0c;所以首先要将jlink禁用&#xff0c;如下&#xff1a; rcu_periph_clock_enable(RCU_AF);rcu_periph_clock_enable(RCU_GPIOA);rcu_periph_clock_enable…

开课通知 | 《AISHELL-3语音合成实战》课程

语音合成技术 在多个智能语音技术的学习方向中&#xff0c;语音合成又称文本转换&#xff08;Text To Speech, 简称TTS&#xff09;即将文字信息转换成为人类可以听得懂、流利的语音技术。在人机语音交互系统中&#xff0c;语音合成作为最后机器将内容转化为语音的输出环节&…

线程可重复使用,程序开发是如何使用线程池的呢?

大家都知道多线程开发对于程序开发的重要性&#xff0c;今天大连九哥来给大家聊一聊线程池的使用过程。 一、为什么要使用线程池&#xff1f; 大家都知道java支持多线程开发&#xff0c;也就是支持多个任务并行运行&#xff0c;我们也知道线程的生命周期中包括创建、就绪、运…

maltose-Transferrin 麦芽糖-转铁蛋白

maltose-Transferrin 麦芽糖-转铁蛋白 中文名称&#xff1a;麦芽糖-转铁蛋白 英文名称&#xff1a;maltose-Transferrin 别称&#xff1a;转铁蛋白修饰麦芽糖&#xff0c;Tf-麦芽糖 可以提供PEG接枝修饰麦芽糖&#xff0c;麦芽糖-聚乙二醇-转铁蛋白,Transferrin-PEG-maltos…

17.Http__Linux

目录 1.为什么要学Linux 2.我们要学什么 3.Linux命令操作 1.常用快捷键&#xff1a; 2.文件的操作 4.管道pipe 5.重定向redirect 5.查看系统指标&#xff08;任务管理器&#xff09; 7.安装软件(maven、包) 8.部署博客系统 1.首先对tomcat进行安装和调配 HTTPS:出现…

山西青年杂志山西青年杂志社山西青年编辑部2022年第22期目录

本刊专稿《山西青年》投稿&#xff1a;cn7kantougao163.com 基于学生激励机制的考核方案研究 聂晶晶; 1-4 当前我国大学生网络心理障碍分析及引导机制研究 陈宁;王佳玮; 5-8 教育教学研究 百万扩招背景下高职院校“三教”改革探究 郭庆秋; 9-11 “百万扩招”背…

linux统计目录文件数量

1、当前文件夹及子文件夹的数量&#xff1a; ls -lR | grep "^d" | wc -l 2、当前文件及子目录文件夹的数量&#xff1a; ls -lR | grep "^-" | wc -l 3、当前目录某文件的数量&#xff1a; find . -name filename | wc -l 4、当前目录所有目录和文件罗…

SpringCloud服务治理介绍Nacos安装及实现负载均衡

目录 一、服务治理简介 二、nacos简介 三、nacos下载&安装 四、nacos实现负载均衡 一、服务治理简介 通过上一章的操作&#xff0c;我们已经可以实现微服务之间的调用。但是我们把服务提供者的网络地址 &#xff08;ip&#xff0c;端口&#xff09;等硬编码到了代码中…

基于PHP+MySQL大连真爱果汁厂管理系统的设计与实现

果汁是以水果为原料经过物理方法如压榨、离心、萃取等得到的汁液产品。长期的饮用果汁不仅可以让我们大饱口福而且能够增加免疫力,减少生病,延缓衰老,甚至一些果汁还有美容养颜的功效,果汁中富含多种矿物质和有机酸为此深受各类人群的喜欢,随着人们健康意识的增加,人们对果汁的…