2023最新动力节点MybatisPlus笔记——第一章入门篇

2023-05-16

  • 第一章【入门篇】

2023最新动力节点MybatisPlus笔记——第一章入门篇

  • 第二章【基础篇】

2023最新动力节点MybatisPlus笔记——第二章基础篇

  • 第三章【进阶篇】

2023最新动力节点MybatisPlus笔记——第三章进阶篇

1 【MybatisPlus入门篇】

1.1 初识MybatisPlus

1.1.1 Mybatis框架回顾

MybatisPlus,从名称上来看,我们就发现,他和Mybatis长得很像,其实MybatisPlus就是Mybatis的孪生兄弟,在学习MybatisPlus之前,我们先来回顾一下Mybatis框架的搭建流程。
什么是Mybatis框架呢,他是一个持久层框架,目的是简化持久层的开发。在这里我们就使用springboot整合Mybatis,实现Mybatis框架的搭建。

【1】工程结构创建
我们首先创建一个空的工程

工程名称是mp

创建springboot模块


这里我们选择springboot2.7.8的版本,并不勾选依赖,随后通过pom.xml手动添加在这里插入图片描述
创建后的结构如下
在这里插入图片描述
【2】创建数据库,表结构,导入表数据
创建数据库mybatisplus
在这里插入图片描述

建表语句

DROP TABLE IF EXISTS user;
CREATE TABLE user(
    id BIGINT(20) NOT NULL COMMENT '主键ID',
    name VARCHAR(30) NULL DEFAULT NULL COMMENT '姓名',
    age INT(11) NULL DEFAULT NULL COMMENT '年龄',
    email VARCHAR(50) NULL DEFAULT NULL COMMENT '邮箱',
PRIMARY KEY (id)
); 

插入数据

DELETE FROM user;
INSERT INTO user (id, name, age, email) VALUES
(1, 'Jone', 18, 'test1@baomidou.com'),
(2, 'Jack', 20, 'test2@baomidou.com'),
(3, 'Tom', 28, 'test3@baomidou.com'),
(4, 'Sandy', 21, 'test4@baomidou.com'),
(5, 'Billie', 24, 'test5@baomidou.com'); 

【3】 引入相关依赖

**<!--mysql驱动-->**<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>5.1.47</version>
</dependency>
**<!--mybatis起步依赖-->**<dependency>
    <groupId>org.mybatis.spring.boot</groupId>
    <artifactId>mybatis-spring-boot-starter</artifactId>
    <version>2.1.3</version>
</dependency>
**<!--web环境起步依赖-->**<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>
**<!--lombok插件依赖-->**<dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
</dependency> 

【4】 创建domain包,编写实体类,实体类的数据类型和表字段类型一致

Lombok可以极大的省略类的代码量,使代码更加的简洁。
Lombok相关常用注解

  • @Data 注解在类上,提供类的get、set、equals、hashCode、toString等方法
  • @AllArgsConstructor 注解在类上,提供满参构造
  • @NoArgsConstructor 注解在类上,提供空参构造
package com.powernode.domain;
import lombok.AllArgsConstructor;import lombok.Data;import lombok.NoArgsConstructor;

@Data
@AllArgsConstructor
@NoArgsConstructorpublic class User {
    **//主键
    **private Long id;
    **//姓名
    **private String name;
    **//年龄
    **private Integer age;
    **//邮箱
    **private String email;
}

【5】 创建mapper包,编写Mapper接口
在这里插入图片描述

@Mapper作用在接口上,扫描到该注解后,会根据接口创建该接口的实现类对象

import com.powernode.domain.User;import org.apache.ibatis.annotations.Mapper;import java.util.List;
@Mapperpublic interface UserMapper {
    public List<User> selectList();
} 

【6】 编写映射文件
在这里插入图片描述

_<?_xml version="1.0" encoding="UTF-8" _?>_<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd"_>_<mapper namespace="com.powernode.mapper.UserMapper">

    <select id="selectAll" resultType="com.powernode.domain.User">
            select * from user
    </select>
</mapper> 

【7】 创建service包,编写Service

package com.powernode.service;
import com.powernode.domain.User;
import java.util.List;
public interface UserService {
    List<User>  selectAll();
} 

【8】 编写ServiceImpl

package com.powernode.service.impl;
import com.powernode.domain.User;import com.powernode.mapper.UserMapper;import com.powernode.service.UserService;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Service;
import java.util.List;
@Servicepublic class UserServiceImpl implements UserService {

    @Autowired
    private UserMapper userMapper;

    @Override
    public List<User> selectAll() {
        return userMapper.selectAll();
    }
}

【9】 编写Controller
在这里插入图片描述

package com.powernode.controller;
import com.powernode.domain.User;import com.powernode.service.UserService;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RestController;
import java.util.List;
@RestControllerpublic class UserController {

    @Autowired
    private UserService userService;

    @RequestMapping("/selectAll")
    public List<User> selectAll(){
        List<User> users = userService.selectAll();
        return users;
    }
} 

【10】 将配置文件改为yml格式,编写配置文件

spring:
  datasource:
    password: root
    username: root
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://localhost:3306/mybatisplus?serverTimezone=UTC&characterEncoding=utf8&useUnicode=true&useSSL=false 

【11】 测试结果
请求controller接口,发现响应了数据,至此Mybatis环境开发完毕

1.1.2 Mybatis框架的开发效率问题分析

我们来思考一下,Mybatis框架的开发效率怎么样?
开发效率也就是我们使用这款框架开发的速度快不快,是否简单好用易上手。从这个角度思考,每当我们需要编写一个SQL需求的时候,我们需要做几步
【1】Mapper接口提供一个抽象方法
【2】Mapper接口对应的映射配置文件提供对应的标签和SQL语句
【3】在Service中依赖Mapper实例对象
【4】调用Mapper实例中的方法
【5】在Controller中依赖Service实例对象
【6】调用Service实例中的方法
通过上面的发现,对于一个SQL需求,无论是单表还是多表,我们是需要完成如上几步,才能实现SQL需求的开发

但是在开发中,有一些操作是通用逻辑,这些通用逻辑是可以被简化的,例如:
【1】对于dao,是否可以由框架帮我们提供好单表的Mapper抽象方法,和对应的SQL实现,不需要程序员去实现这些
【2】对于service,使用可以有框架直接帮我们提供好一些service的抽象方法,和对应的实现,不需要程序员去实现这些
【3】一些其他的企业开发中所需要的操作
分析到这里我们发现,其实核心框架并没有发生变化,依然还是Mybatis,只不过我们希望对于Mybatis进行一些封装和进化,让它更加的好用,更加的易用。

MybatisPlus它来了,他是Mybatis的一款增强工具。

1.1.3 MybatisPlus的介绍

MyBatis-Plus(简称 MP)是一个 MyBatis的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。
愿景
我们的愿景是成为 MyBatis 最好的搭档,就像 魂斗罗 中的 1P、2P,基友搭配,效率翻倍。

1.1.4 MybatisPlus的特性讲解

特性

  • 无侵入:只做增强不做改变,引入它不会对现有工程产生影响,如丝般顺滑
  • 损耗小:启动即会自动注入基本 CURD,性能基本无损耗,直接面向对象操作
  • 强大的 CRUD 操作:内置通用 Mapper、通用 Service,仅仅通过少量配置即可实现单表大部分 CRUD 操作,更有强大的条件构造器,满足各类使用需求
  • 支持 Lambda 形式调用:通过 Lambda 表达式,方便的编写各类查询条件,无需再担心字段写错
  • 支持主键自动生成:支持多达 4 种主键策略(内含分布式唯一 ID 生成器 - Sequence),可自由配置,完美解决主键问题
  • 支持 ActiveRecord 模式:支持 ActiveRecord 形式调用,实体类只需继承 Model 类即可进行强大的 CRUD 操作
  • 支持自定义全局通用操作:支持全局通用方法注入( Write once, use anywhere )
  • 内置代码生成器:采用代码或者 Maven 插件可快速生成 Mapper 、 Model 、 Service 、 Controller 层代码,支持模板引擎,更有超多自定义配置等您来使用
  • 内置分页插件:基于 MyBatis 物理分页,开发者无需关心具体操作,配置好插件之后,写分页等同于普通 List 查询
  • 分页插件支持多种数据库:支持 MySQL、MariaDB、Oracle、DB2、H2、HSQL、SQLite、Postgre、SQLServer 等多种数据库
  • 内置性能分析插件:可输出 SQL 语句以及其执行时间,建议开发测试时启用该功能,能快速揪出慢查询
  • 内置全局拦截插件:提供全表 delete 、 update 操作智能分析阻断,也可自定义拦截规则,预防误操作

支持数据库
任何能使用 MyBatis 进行 CRUD, 并且支持标准 SQL 的数据库,具体支持情况如下,如果不在下列表查看分页部分教程 PR 您的支持。
MySQL,Oracle,DB2,H2,HSQL,SQLite,PostgreSQL,SQLServer,Phoenix,Gauss ,ClickHouse,Sybase,OceanBase,Firebird,Cubrid,Goldilocks,csiidb
达梦数据库,虚谷数据库,人大金仓数据库,南大通用(华库)数据库,南大通用数据库,神通数据库,瀚高数据库

1.1.5 MybatisPlus的架构模型

1.1.6 小结

本章节主要介绍了传统的Mybatis框架的开发效率问题,通过发现问题,我们期望得到一款增强工具,在不改变Mybatis核心原理的同时,解决Mybatis开发效率问题,并提供其他数据库所需要的功能。
通过了解MybatisPlus,我们得知,它是一款国产的增强工具,极大的简化了Mybatis框架操作,降低了Mybatis框架的学习成本,提高了开发效率,在国内十分流行。

1.2 入门案例

1.2.1 准备相关开发环境

IDEA 2021.3.1
PostMan 10.6.7
Navicat 15.0.9
Mysql 5.7.27
JDK8 1.8.0_311

以上环境各位同学之前一定接触过,没有安装的自行安装,在这里就不再演示安装了
另外本课程需要有Mybatis和springboot相关的基础,如果没有这部分基础的同学,需要先回顾相关课程,然后再继续本课程的学习

1.2.2 搭建springboot工程


1.2.3 创建表结构

创建数据库mybatisplus

建表语句

DROP TABLE IF EXISTS user;
CREATE TABLE user(
    id BIGINT(20) NOT NULL COMMENT '主键ID',
    name VARCHAR(30) NULL DEFAULT NULL COMMENT '姓名',
    age INT(11) NULL DEFAULT NULL COMMENT '年龄',
    email VARCHAR(50) NULL DEFAULT NULL COMMENT '邮箱',
    PRIMARY KEY (id)); 

1.2.4 添加表数据

插入数据

DELETE FROM user;
INSERT INTO user (id, name, age, email) VALUES
(1, 'Jone', 18, 'test1@baomidou.com'),
(2, 'Jack', 20, 'test2@baomidou.com'),
(3, 'Tom', 28, 'test3@baomidou.com'),
(4, 'Sandy', 21, 'test4@baomidou.com'),
(5, 'Billie', 24, 'test5@baomidou.com'); 

1.2.5 引入相关依赖

 <dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>mybatis-plus-boot-starter</artifactId>
    <version>3.5.3</version>
</dependency>

<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
</dependency>

<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>druid</artifactId>
    <version>1.1.16</version>
</dependency>

<dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
</dependency>

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency> 

1.2.6 创建实体类

 package com.powernode.domain;
import lombok.AllArgsConstructor;import lombok.Data;import lombok.NoArgsConstructor;_@Data
@AllArgsConstructor
@NoArgsConstructorpublic class User {
    private Long id;
    private String name;
    private Integer age;
    private String email;
} 

1.2.7 集成MybatisPlus

【1】编写Mapper接口

package com.powernode.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;import com.powernode.domain.User;import org.apache.ibatis.annotations.Mapper;
@Mapperpublic interface UserMapper extends BaseMapper<User> {
} 

【2】 编写Service接口

package com.powernode.service;
import com.powernode.domain.User;
import java.util.List;_public interface UserService {
    List<User> selectList();
} 

【3】 编写ServiceImpl

@Servicepublic class UserServiceImpl implements UserService {
    @Autowired
    UserMapper userMapper;

    public List<User> selectList(){
        return userMapper.selectList(null);
    }
} 

【4】 编写Controller

import com.powernode.domain.User;import com.powernode.service.UserService;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RestController;
import java.util.List;_@RestControllerpublic class UserController {
    @Autowired
    UserService userService;

    @RequestMapping("/selectList")
    public String selectList() {
        List<User> all;
        all = userService.selectList();
        return all.toString();
    }
}

【5】 编写配置文件

spring:
  datasource:
    password: root
    username: root
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://localhost:3306/mybatisplus?serverTimezone=UTC&characterEncoding=utf8&useUnicode=true&useSSL=false 

1.2.8 测试效果

1.2.9 单元测试

到此,模拟开发的三层我们就测试完了, 因为Controller和Service都是之前的知识,所以后面我们测试MybatisPlus的代码,通过单元测试的方式来编写

@SpringBootTestclass Mp02ApplicationTests {

    @Autowired
    private UserMapper userMapper;

    @Test
    void selectList() {
        List<User> userList = userMapper.selectList(null);
        System._out_.println(userList);
    }
}

1.2.10 精简springboot的相关日志

去除mybatisplus的logo

mybatis-plus:
  global-config:
    banner: false

去除springboot的logo

spring:
    main:
     banner-mode: _off_

1.2.11 MybatisPlus的执行日志

mybatis-plus:
  configuration:
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl

1.2.12 小结

本章节我们通过编写了一个MybatisPlus的入门案例,体验到了MybatisPlus的便捷性,在后面的学习中,各种各样的MybatisPlus的操作都非常容易上手,可以说MybatisPlus是一款学习成本非常低的增强工具。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

2023最新动力节点MybatisPlus笔记——第一章入门篇 的相关文章

  • svn怎么切换分支

    项目场景 xff1a svn切换不成功 问题描述 怎么切换都不成功 原因分析 xff1a 解决方案 xff1a 1查看当前所在的位置 2点击switch 3to path选中需要的路径 xff0c ok就可以了 重复1步骤就能查看当前路径是
  • android studio识别不到夜神模拟器怎么办

    问题描述 xff1a 正常运行情况下 xff0c 夜神模拟器突然找不到了 xff1b 解决方案 xff1a 1 找到夜神模拟器的目录bin目录下 xff0c 路径栏中输入cmd回车 xff0c 进入控制台页面 2 执行命令 nox adb
  • Android 动态设置padding跟margin的问题

    padding view setPadding int left int top int right int bottom margin LayoutParams lp 61 LayoutParams view getLayoutParam
  • svn如何合并代码

    1 先提交本地代码 2 切换至要汇总代码的目标枝干 3 在目标枝干选择最外层的文件夹 xff0c 然后右击文件夹 merge 4 选择需要合并的分支 xff0c 和需要合并的日志 xff1b 5可以先test merge xff0c 然后选
  • android studio logcat 无日志 No connect devices

    解决 xff1a 去sdk tools中找到 google use driver xff0c 下载 xff0c 然后重启编译器 成功 连接不上夜神模拟器可以去夜神对应的bin目录下 xff0c 在目录框中输入cmd回车 输入nox adb
  • android findviewbyid 返回null

    findViewById返回Null 转自 xff1a http blog sina com cn s blog 5e58565701012q2d html 错误 xff1a findViewById返回Null xff0c 报nullpo
  • nox夜神模拟器连接不上android studio,用bat脚本快速输入命令

    不知道为什么android studio老是会识别不到夜神模拟器 xff1b 之前都是通过cmd 到夜神的bin目录下面 然后输入命令 xff0c 连接模拟器 现在发现一种更简单的做法 xff1b 1 创建一个文本文档 xff0c 改名的时
  • 微策略2017年秋招线下笔试+技术面+在线测评+主管面总结

    1 前言 微策略可能在国内的知名度比较小 xff0c 它是一家总部在美国 xff0c 在杭州设立研发中心 xff0c 主要做智能商用软件的外企 更多的信息 xff0c 请自行搜索 我是17年10月份面试微策略 xff0c 然后拿到的开发 x
  • Gradle Wrapper是什么

    Gradle提供了内置的Wrapper task帮助我们自动生成Wrapper所需要的目录文件 在一个项目中的根目录下执行 gradle wrapper即可生成 工程结构介绍 xff1a gradlew xff1a Linux下的可执行脚本
  • nginx上传文件失败,提示上传文件过大,怎么解决

    问题描述 xff1a 上传文件失败 xff0c 文件大小4M左右 上传程序为Java xff0c 通过nginx反向代理写入Fastdfs中 xff0c 但是一直失败 xff0c 查看nginx错误日志 xff0c 提示如下内容 xff1a
  • slf4j,log4j,logback之间的关系

    1 SLF4J Simple logging Facade for Java 意思为简单日志门面 xff0c 它是把不同的日志系统的实现进行了具体的抽象化 xff0c 只提供了统一的日志使用接口 xff0c 使用时只需要按照其提供的接口方法
  • 360笔试题2013

    编程题 传教士人数M xff0c 野人C xff0c M C xff0c 开始都在岸左边 xff0c 船只能载两人 xff0c 传教士和野人都会划船 xff0c 当然必须有人划船 两岸边保证野人人数不能大于传教士人数 把所有人都送过河 xf
  • 搜狗笔试题

    搜狗 xff1a 1 xff0c 有n n个正方形格子 xff0c 每个格子里有正数或者0 xff0c 从最左上角往最右下角走 xff0c 只能向下和向右走 一共走两次 xff0c 把所有经过的格子的数加起来 xff0c 求最大值 且两次如
  • WINDOWS VISTA 使用心得(二)

    WINDOWS VISTA 使用心得 xff08 二 xff09 前面谈了VISTA的版本介绍 xff0c 下面谈谈VISTA的安装 现在网上关于VISTA的文章已经很多了 xff0c 介绍也都很详细 我主要是谈谈自己安装VISTA的感受
  • 数据结构-----约瑟夫环问题

    据说著名犹太历史学家 Josephus有过以下的故事 xff1a 在罗马人占领乔塔帕特后 xff0c 39 个犹太人与Josephus及他的朋友躲到一个洞中 xff0c 39个犹太人决定宁愿死也不要被敌人抓到 xff0c 于是决定了一个自杀
  • Ubuntu错误之runitgit-daemon-runE

    使用apt install命令的错误信息如下所示 Use 39 apt get autoremove 39 to remove them 0 upgraded 0 newly installed 0 to remove and 228 no
  • E: 有未能满足的依赖关系。请尝试不指明软件包的名字来运行“apt --fix-broken install”(也可以指定一个解决办法)。

    提示 xff1a img alt src https img blog csdnimg cn 00ad6aa76f7b4b3083f5fd9dc0c5f826 png 问题描述 安装包缺少依赖关系时 xff0c 系统提示 您也许需要运行 a
  • Android7.0高级设置修改一级菜单分类和显示顺序并跳转第三方应用

    在android 盒子定制开发中 xff0c 时常会遇到需要修改高级设置Settings内容的需求 xff0c 比如在海思3798MV200方案中 xff0c 显示 菜单和 高级设置 菜单都是调整HDMI视频显示相关的设置 xff0c 但
  • Python 绘制散点图

    span class token keyword from span sklearn span class token punctuation span cluster span class token keyword import spa
  • springMVC之配置(context:component-scan) 详解

    lt context component scan base package 61 34 com wjx betalot 34 lt 扫描的基本包路径 gt annotation config 61 34 true 34 lt 是否激活属性

随机推荐

  • Android开发之design库学习

    Internal ForegroundLinearLayout 分割线性能优化 接触第一个类就是他了 xff0c 瞬间get到一点关于性能优化的 xff0c LinearLayout的divider相关属性 xff0c 平时开发需要分割线个
  • Framework学习(六)应用程序进程启动过程

    概述 上篇文章Framework学习 xff08 五 xff09 应用程序启动过程我们讲解了应用程序启动过程 xff0c 但是还有一个遗留知识点 xff0c 那就是应用程序进程的启动 我们知道应用程序启动之前需要保证应用程序的进程先启动 x
  • VUE 项目引入Sass后启动报错 TypeError [ERR_INVALID_ARG_TYPE]: The “path“ argument must be of type string 解决方法

    vue文件里面使用lang 61 34 scss 34 xff0c 解决方法是 xff1a 肯定要安装sass loader和node sass 报错 xff1a TypeError ERR INVALID ARG TYPE The 34
  • Android中获取应用程序(包)的大小-----PackageManager的使用(二) .

    通过第一部分 lt lt Android中获取应用程序 包 的信息 PackageManager的使用 一 gt gt 的介绍 xff0c 对PackageManager以及 AndroidManife xml定义的节点信息类XXXInfo
  • 学习Linux必备书籍推荐

    xfeff xfeff 鸟哥的私房菜 xff08 第3版 xff09 xff0c 鸟哥著 xff1a 这本书内容丰富全面 xff0c 基本概念的讲解非常细致 xff0c 深入浅出 xff0c 各种功能和命令的介绍都配以大量的实例操作和详尽的
  • 使用gparted工具扩充vmware UBUNTU虚拟机磁盘空间

    虚拟机器用了一段时间之后 xff0c 由于安装的软件越来越多 xff0c 慢慢的磁盘空间就不够用了 xff0c 需要扩充空间 网上有很多方法 xff0c 但个人认为对虚拟机来说最好的方法就是用gparted工具进行空间扩展 xff0c 非常
  • 2022年打工人转行实录!你后悔转行了吗?

    2022年 xff0c 有许多年轻人在寻求 转行 根据 2022Q1中高端人才就业趋势大数据报告 xff0c 今年一季度有55 87 的职场人有跳槽计划 xff0c 而这之中 xff0c 有65 34 的职场人选择跨行业跳槽 在各种社交平台
  • 速看!TIOBE12月编程语言排行榜,第一名太牛啦!

    全球知名TIOBE编程语言社区发布了2022年12月的编程语言排行榜 我们一起来看看 xff0c 本月榜单中有哪些值得注意的新变化吧 xff01 自去年 10 月登顶后 xff0c Python 至今仍牢牢占据榜一大哥的位置 C 43 43
  • 使用MFC的CDC类绘制三维坐标系及球面函数

    系列链接 使用MFC的CDC类绘制二维坐标系及正余弦函数 源码 使用MFC的CDC类绘制三维坐标系及球面函数 源码 概述 本文使用MFC的CDC类绘制三维坐标系及球面函数 首先计算推导出三维坐标在二维平面显示的坐标变换方程 xff08 使用
  • Android R系统Fingerprint指纹流程归纳

    孩子长大 xff0c 倘无才能 xff0c 可寻点小事情过活 xff0c 万不可做空头文学家或美术家 鲁迅 1 Android R中framework中需要新的配置项才会在SetupWizard中启动Settings的BiometricEn
  • Python爬虫深造篇(一)——多线程网页爬取

    一 前情提要 相信来看这篇深造爬虫文章的同学 xff0c 大部分已经对爬虫有不错的了解了 xff0c 也在之前已经写过不少爬虫了 xff0c 但我猜爬取的数据量都较小 xff0c 因此没有过多的关注爬虫的爬取效率 这里我想问问当我们要爬取的
  • RabbitMQ:消息何去何从

    在正常情况下 xff0c 生产者产生并发送一条消息然后被交换器正确路由到某个队列中 但是如果一条消息不能被正确路由到某个队列时 xff0c 那么这条消息该何去何从呢 xff1f RabbitMQ提供以下几个处理方案 xff1a xff08
  • Mysql 10061 Unknown error

    一 问题 二 解决方法 1 打开任务管理器找到Mysql服务 2 右键 打开服务 3 找到Mysql 启动类型设置为 自动 4 启动服务 5 启动成功后再次尝试链接 xff0c 数据库成功打开
  • Thonny,Python小白最理想的IDE

    目录 前言 Thonny的特点 安装使用 下载安装 运行 xff1a 第一行代码 Hello xff0c World 前言 很多伙伴在学习我们Python基础语法交互的时候 xff0c 问道Python怎么安装 xff1f 我们开发的Pyt
  • 【超详细】【ubunbu 22.04】 手把手教你安装nvidia驱动,有手就行,隔壁家的老太太都能安装

    目录 前言 一 英伟达官网下载驱动 二 更新软件列表和安装必要软件 依赖 三 进入tty模式 1 关闭图形界面进入tty模式 2 进入tty以后需要输入用户名和密码登录 3 禁用X window服务 四 安装驱动 五 返回图形界面 六 可能
  • 全志a20 fastboot烧写system.img时出现 data too large 错误

    在调试 全志a20的过程中 xff0c 使用fastboot烧写system image出现 xff1a data too large 错误 解决方法 xff1a 修改lichee u boot include configs sun7i
  • linux系统中rpm与Yum软件仓库

    rpm的作用 xff1a 在没有rpm软件管理之前我们在安装 升级 卸载服务程序时要考虑到其他程序 库的依赖关系 xff0c 所以在进行安装 校验 卸载 升级等操作时的难度就非常之大 rpm机制则为就是为了解决这些问题而设计的 xff0c
  • 老杜带你从零入门MyBatis,学MyBatis看这篇就够了!

    MyBatis本是apache的一个开源项目iBatis xff0c 2010年这个项目由apache software foundation迁移到了google code xff0c 并且改名为MyBatis 2013年11月迁移到Git
  • Docker全家桶入门到进阶教程,Docker快速上手

    开发 运维互掐 开发与测试和运维间的矛盾 xff0c 主要是由于环境的不同而引发的 如果能将开发人员使用 的环境交给测试与运维使用 xff0c 这些问题就都能解决 DevOps DevOps 是一种思想 xff0c 是一种管理模式 xff0
  • 2023最新动力节点MybatisPlus笔记——第一章入门篇

    第一章 入门篇 2023最新动力节点MybatisPlus笔记 第一章入门篇 第二章 基础篇 2023最新动力节点MybatisPlus笔记 第二章基础篇 第三章 进阶篇 2023最新动力节点MybatisPlus笔记 第三章进阶篇 1 M