十八,Spring Boot 整合 MyBatis-Plus 的详细配置

news2024/11/13 12:40:39

十八,Spring Boot 整合 MyBatis-Plus 的详细配置

文章目录

  • 十八,Spring Boot 整合 MyBatis-Plus 的详细配置
  • 1. MyBatis-Plus 的基本介绍
  • 2. Spring Boot 整合 MyBatis Plus 的详细配置
  • 3. Spring Boot 整合 MyBatis plus 注意事项和细节
  • 4. MyBatisx 插件的安装和使用
    • 4.1 MyBatisx 核心功能
      • 4.1.1 XML 映射跳转
      • 4.1.2 代码生成
      • 4.1.3 重置模板
      • 4.1.4 JPA 风格提示
      • 4.1.5 生成的表名与预期不符?
  • 5. 最后:


1. MyBatis-Plus 的基本介绍

MyBatis-Plus 官网文档:https://baomidou.com/

在这里插入图片描述

MyBatis-Plus 是一个 MyBatis 的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。

在这里插入图片描述

MyBatis puls (简称 MP) 是一个Mybatis 的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发,提供效率而生。

强大的CRUD操作:内置通用Mapper,通用 Service,通过少量配置即可实现单表大部分的CRUD操作,更有强大的条件构造器,满足各类使用需求

关于 MyBatis Plus 的更多详细内容,大家可以移步至✏️✏️✏️ MyBatis-Plus_ChinaRainbowSea的博客-CSDN博客

2. Spring Boot 整合 MyBatis Plus 的详细配置

  1. 准备数据库,和数据表。如下图所示:

在这里插入图片描述


CREATE DATABASE `springboot_mybatispuls`

USE `springboot_mybatispuls`


CREATE TABLE `monster` (
`id` int not null auto_increment,
`age` int not null,
`birthday` DATE DEFAULT NULL,
`email` VARCHAR(255) DEFAULT NULL,
`gender` CHAR(1) DEFAULT null,
`name` VARCHAR(255) DEFAULT NULL,
`salary` DOUBLE not NULL,
PRIMARY KEY(`id`)
)

SELECT * from monster



INSERT INTO  `monster` (`id`,`age` ,`birthday`,`email`,`gender`,`name`,`salary`) 
VALUES (1,20,'2000-10-10','nmw@sohu.com','男','牛魔王',9000.99);
INSERT INTO  `monster` (`id`,`age` ,`birthday`,`email`,`gender`,`name`,`salary`)
VALUES (2,10,'2000-12-12','bgj@sohu.com','女','白骨精',9999.99);

  1. 我们导入相关的 jar 依赖。这里我们使用 Druid 数据库连接池。

对于 Mybatis-puls 相关的 jar 包,大家可以在:✏️✏️✏️ https://mvnrepository.com/ 找到所需要的版本。

在这里插入图片描述

  • https://mvnrepository.com/artifact/com.baomidou/mybatis-plus-boot-starter

在这里插入图片描述

这里我使用的是:3.4.3 的版本。

<!--        引入 mybatis-puls starter-->
        <!-- https://mvnrepository.com/artifact/com.baomidou/mybatis-plus-boot-starter -->
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>3.4.3</version>
        </dependency>

在这里插入图片描述

引入 Druid 数据库的 jar 依赖。

在这里插入图片描述

<!--        引入 druid 依赖-->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid</artifactId>
            <version>1.1.17</version>
        </dependency>

完整的 pom.xml 的编写的 jar 依赖

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.rainbowsea</groupId>
    <artifactId>springboot_mybatispuls</artifactId>
    <version>1.0-SNAPSHOT</version>




    <!--    导入SpringBoot 父工程-规定写法-->
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.5.3</version>
    </parent>

    <!--    导入web项目场景启动器:会自动导入和web开发相关的jar包所有依赖【库/jar】-->
    <!--    后面还会在说明spring-boot-starter-web 到底引入哪些相关依赖-->
    <dependencies>
        <!--        引入 web starter 依赖-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>


        <!--        引入 mysql 驱动: 这里老师使用版本仲裁 8.0.26-->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
        </dependency>

        <!--        引入配置处理器-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-configuration-processor</artifactId>
        </dependency>


        <!--引入lombok-->
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
        </dependency>

        <!--        引入 test stater -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
        </dependency>

        <!--        引入 druid 依赖-->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid</artifactId>
            <version>1.1.17</version>
        </dependency>

<!--        引入 mybatis-puls starter-->
        <!-- https://mvnrepository.com/artifact/com.baomidou/mybatis-plus-boot-starter -->
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>3.4.3</version>
        </dependency>

    </dependencies>

</project>
  1. 编写对应 数据表的在Java当中对应的 Bean 对象。

在这里插入图片描述

特殊说明:

这里使用 @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8") 注解。来设置数据表当中的时间赋值到该 Bean 对象上的时间属性的一个时间格式。

  • pattern = "yyyy-MM-dd" 是设置时间显示的格式样式
  • timezone = "GMT+8" 是设置时区差。这里我们中国是东半球,时差为 + 8 个小时。

需要注意的是:这个注解只对前端显示,有效果,后端,控制台显示无效。

在这里插入图片描述

  1. 将Spring Boot 默认的 HikariCP 数据库连接池,切换为我们想要的 Druid 数据库连接池。

这里我们通过配置类的方式,进行切换。

在这里插入图片描述

package com.rainbowsea.springboot.mybatis.config;

import com.alibaba.druid.pool.DruidDataSource;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

import javax.sql.DataSource;

@Configuration
public class DruidDataSourceConfig {


    @ConfigurationProperties(value = "spring.datasource")  // 读取 类路径下的application.yaml
    // 的信息,并为下面的 对应的 setXX 进行赋值操作
    @Bean
    public DataSource dataSource() {
        DruidDataSource druidDataSource = new DruidDataSource();

        return druidDataSource;

    }

}

在 resource 类路径下创建一个,名为 applicaiton.yaml 文件,配置编写,相关对于,Druid 数据库连接池的信息。如下:

在这里插入图片描述

server:
  port: 9090

spring:
  datasource:
    url: jdbc:mysql://localhost:3306/springboot_mybatispuls?useSSL=true&useUnicode=true&characterEncoding=UTF-8
    driver-class-name: com.mysql.cj.jdbc.Driver
    username: root
    password: MySQL123


在这里插入图片描述

特别说明:我们还可以在 application.yaml 文件当中,配置一下,开启 Mybatis puls 的打印显示日志信息的。

mybatis-plus:
  configuration:  # 进行mybatis-puls配置,配置项和mybatis是一样的 开启日志
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl

在这里插入图片描述

完整的 application.yaml 的文件内容的编写。如下:

server:
  port: 9090

spring:
  datasource:
    url: jdbc:mysql://localhost:3306/springboot_mybatis?useSSL=true&useUnicode=true&characterEncoding=UTF-8
    driver-class-name: com.mysql.cj.jdbc.Driver
    username: root
    password: MySQL123


mybatis-plus:
  configuration:  # 进行mybatis-puls配置,配置项和mybatis是一样的 开启日志
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl

  1. 编写项目的场景启动器。

在这里插入图片描述

运行测试,我们是否成功切换为了,我们想要的 Duird 数据连接池,因为在 Spring Boot 当中测试的话,必须要编写好对应的项目启动器,不然,是无法测试的,会报错。同时也测试我们的 MyBatis puls 是否配置上去了。

在这里插入图片描述

在这里插入图片描述

package com.rainbowsea.springboot.mybatisplus;


import com.rainbowsea.springboot.mybatispuls.Application;
import com.rainbowsea.springboot.mybatispuls.bean.Monster;
import com.rainbowsea.springboot.mybatispuls.mapper.MonsterMapper;
import com.rainbowsea.springboot.mybatispuls.service.MonsterService;
import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.jdbc.core.JdbcTemplate;

import javax.annotation.Resource;
import java.util.List;

@SpringBootTest(classes = Application.class)
public class ApplicationTest {

    @Resource
    private JdbcTemplate jdbcTemplate;



    @Test
    public void getDruidSourceTest() {
        System.out.println(jdbcTemplate.getDataSource().getClass());
    }



}

  1. 建一个mapper/dao 的包,在该包下创建一个名为 MonsterMapper 的接口,通过代理类的方式,在该接口下,编写我们要执行业务的 SQL 语句的方法。

在这里插入图片描述

package com.rainbowsea.springboot.mybatispuls.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.rainbowsea.springboot.mybatispuls.bean.Monster;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

/**
 * BaseMapper 已经默认提供了很多的crud 方法,可以直接使用
 * 如果BaseMapper 提供的方法不能满足业务需求,我们可以再开发新的方法,
 * 并在MonsterMapper.xml 进行配置 ===> 使用插件开发
 */


@Mapper
public interface MonsterMapper extends BaseMapper<Monster> {




}

特别说明:

BaseMapper 已经默认提供了很多的crud 方法,可以直接使用。

在这里插入图片描述

在这里插入图片描述

如果BaseMapper 提供的方法不能满足业务需求,我们可以再开发新的方法,就像使用 mybatis 一样,我们可以在 。

在这里插入图片描述

如果是: BaseMapper 当中的方法,我们就不需要自行编写对应 SQL 语句的 xml 文件内容了,当然,对于自定义的方法,我们也可以通过 Mybatisx 插件为我们自动生成对应的xml的SQL语句。

这里我们在该 接口类当中,使用了 @Mapper 注解。该注解的作用就是,让Spring Boot 加载的时候,会扫描这个类。从而找到这个类。这样我们就不需要额外的配置,包扫描了

运行测试:

在这里插入图片描述

package com.rainbowsea.springboot.mybatisplus;


import com.rainbowsea.springboot.mybatispuls.Application;
import com.rainbowsea.springboot.mybatispuls.bean.Monster;
import com.rainbowsea.springboot.mybatispuls.mapper.MonsterMapper;
import com.rainbowsea.springboot.mybatispuls.service.MonsterService;
import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.jdbc.core.JdbcTemplate;

import javax.annotation.Resource;
import java.util.List;

@SpringBootTest(classes = Application.class)
public class ApplicationTest {



    @Resource
    private MonsterMapper monsterMapper;

    @Test
    public void testMonsterMapper() {
        Monster monster = monsterMapper.selectById(2);
        System.out.println("monster--" + monster);
    }




}

在这里插入图片描述

  1. 编写对应的 Severl 业务处理

首先编写接口。

在这里插入图片描述

package com.rainbowsea.springboot.mybatispuls.service;


import com.baomidou.mybatisplus.extension.service.IService;
import com.rainbowsea.springboot.mybatispuls.bean.Monster;


/**
 * 1.传统方式:在接口中定义方法/声明方法,然后在实现类中进行实现
 * 2. 在mybatis-plus中,我们可以继承父接口 IService
 * 3. 这个 IService 接口声明很多方法,比如crud
 * 4. 如果默认提供方法不能满足需要,我们可以再声明需要的方法,然后在实现类中进行实现即可
 */

// 注意:接口不要添加 @Service
public interface MonsterService extends IService<Monster> {
    // 自定义方法
    public void t1();
}

特别说明:

  1. 传统方式:在接口中定义方法/声明方法,然后在实现类中进行实现
  2. 在mybatis-plus中,我们可以继承父接口 IService
  3. 这个 IService 接口声明很多方法,比如crud。

在这里插入图片描述

在这里插入图片描述

  1. 如果默认提供方法不能满足需要,我们可以再声明需要的方法,然后在实现类中进行实现即可。

在这里插入图片描述

在编写其接口的实现类:

在这里插入图片描述

在这里插入图片描述

package com.rainbowsea.springboot.mybatispuls.service.impl;

import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;

import com.rainbowsea.springboot.mybatispuls.bean.Monster;
import com.rainbowsea.springboot.mybatispuls.mapper.MonsterMapper;
import com.rainbowsea.springboot.mybatispuls.service.MonsterService;
import org.springframework.stereotype.Service;


/**
 * 1. 传统方式:在实现类中直接进行implements MonsterService
 * 2. 在mybatis-puls 中,我们开发Service 实现类,需要继承 ServiceImpl
 * 3. 我们观察看到 ServiceImpl 类实现 IService 接口
 * 4. MonsterService 接口它继承了 IService 接口
 * 5. 这里MonsterServiceImpl 就可以认为是实现了 MonsterService接口,这样MonsterService
 * 就可以使用IService接口方法,也可以理解可以使用 MonsterService 方法
 * 6. 如果 MonsterService接口中,声明了其它的方法/自定义方法,那么我们依然需要在MonsterService
 * 类,进行实现
 */

@Service
public class MonsterServiceImpl
    extends ServiceImpl<MonsterMapper, Monster>
        implements MonsterService {


    @Override
    public void t1() {

    }
}

特别说明,重点内容:

  1. 传统方式:在实现类中直接进行 implements MonsterService
  2. 在mybatis-puls 中,我们开发Service 实现类,需要继承 ServiceImpl

在这里插入图片描述

在这里插入图片描述

    1. 我们观察看到 ServiceImpl 类实现 IService 接口,MonsterService 接口它继承了 IService 接口,这里MonsterServiceImpl 就可以认为是实现了 MonsterService接口,这样MonsterService就可以使用IService接口方法,也可以理解可以使用 MonsterService 方法。

    在这里插入图片描述

在这里插入图片描述

  1. 如果 MonsterService接口中,声明了其它的方法/自定义方法,那么我们依然需要在MonsterService类,进行实现 。

运行测试:

在这里插入图片描述

package com.rainbowsea.springboot.mybatisplus;


import com.rainbowsea.springboot.mybatispuls.Application;
import com.rainbowsea.springboot.mybatispuls.bean.Monster;
import com.rainbowsea.springboot.mybatispuls.mapper.MonsterMapper;
import com.rainbowsea.springboot.mybatispuls.service.MonsterService;
import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.jdbc.core.JdbcTemplate;

import javax.annotation.Resource;
import java.util.List;

@SpringBootTest(classes = Application.class)
public class ApplicationTest {


    @Resource
    private MonsterService monsterService;


    @Test
    public void testMonsterService() {
        Monster monster = monsterService.getById(2);
        System.out.println(monster);

        // 这些 List 都是 monsterService 继承 IService 当中的方法
        List<Monster> list = monsterService.list();

        for (Monster monster1 : list) {
            System.out.println(monster1);
        }
    }




}

在这里插入图片描述

  1. 编写对应的 Controller 控制器,在前端处理显示。

在这里插入图片描述

在这里插入图片描述

package com.rainbowsea.springboot.mybatispuls.controller;



import com.rainbowsea.springboot.mybatispuls.bean.Monster;
import com.rainbowsea.springboot.mybatispuls.service.MonsterService;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;

import javax.annotation.Resource;
import java.util.List;

@Controller
public class MonsterController {

    @Resource
    private MonsterService monsterService;

    // 方法,根据id 返回对应对象
    @ResponseBody
    @GetMapping("/monster")
    public Monster getMonsterById(@RequestParam(value = "id") Integer id) {
        return monsterService.getById(id);
    }

    // 编写方法,返回所有的monster信息
    // 后面我们还会说分页查询
    @GetMapping("/list")
    @ResponseBody
    public List<Monster> listMonster() {
        return monsterService.list();
    }


}

运行测试:注意:我们这里配置的端口是9090,并不是8080。

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

3. Spring Boot 整合 MyBatis plus 注意事项和细节

如果这个Java当中的类名 Monster 和 数据库表中的表名不一致,不能映射上。则可以通过

@TableName指定
@TableName("monster_") // 填数据库表当中定义的表名

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

我们在该 Bean 类上添加上 @TableName 注解。

@TableName("monster_") value 值指明为:对应数据库当中的数据表,为那张数据表进行一个映射处理。

在这里插入图片描述

在这里插入图片描述


4. MyBatisx 插件的安装和使用

MybatisX 是一款专为 IntelliJ IDEA 设计的快速开发插件,旨在提升 MyBatis 与 MyBatis-Plus 框架的开发效率。

官网文档地址:https://baomidou.com/guides/mybatis-x/

安装:

  1. 打开 IntelliJ IDEA。
  2. 进入 File -> Settings -> Plugins -> Browse Repositories
  3. 在搜索框中输入 mybatisx
  4. 找到 MybatisX 插件并点击安装。
  5. 在这里插入图片描述

4.1 MyBatisx 核心功能

4.1.1 XML 映射跳转

MybatisX 提供了便捷的 XML 映射文件与 Java 接口之间的跳转功能,让开发者能够快速地在两者之间切换,提高开发效率。

XML 跳转示例

4.1.2 代码生成

通过 MybatisX,您可以轻松地根据数据库表结构生成对应的 Java 实体类、Mapper 接口及 XML 映射文件。

代码生成示例

4.1.3 重置模板

MybatisX 允许您重置代码生成模板,以恢复到默认设置或自定义模板内容。

重置模板示例

4.1.4 JPA 风格提示

MybatisX 支持 JPA 风格的代码提示,包括新增、查询、修改和删除操作的自动代码生成。

  • 生成新增操作生成新增示例
  • 生成查询操作生成查询示例
  • 生成修改操作生成修改示例
  • 生成删除操作生成删除示例

4.1.5 生成的表名与预期不符?

MybatisX 根据以下规则确定表名:

  1. 实体类上的 JPA 注解,如:@Table(name="t_user")
  2. 实体类上的 mybatis-plus 注解,如:@TableName("t_user")
  3. 实体类上的注释,如:@TableName com.xx.xx.UserModel
  4. 若以上规则均不满足,则将驼峰命名的类名转换为下划线命名,如:UserModel 对应表名 user_model

5. 最后:

“在这个最后的篇章中,我要表达我对每一位读者的感激之情。你们的关注和回复是我创作的动力源泉,我从你们身上吸取了无尽的灵感与勇气。我会将你们的鼓励留在心底,继续在其他的领域奋斗。感谢你们,我们总会在某个时刻再次相遇。”

在这里插入图片描述

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

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

相关文章

《微处理器系统原理与应用设计第十三讲》通用同/异步收发器USART轮询模式应用设计

USART提供两设备之间的串行双工通信&#xff0c;并支持中断和DMA工作。采用轮询、中断和DMA三种方式进行数据收发。 一、功能需求 实现远程串行通信数据的回传确认。微处理器系统构成的测控设备通过USART&#xff08;串口&#xff09;与用户设备&#xff08;上位机&#xff0…

学习使用SQL Server Management Studio (SSMS)

SQL Server Management Studio (SSMS) 是一个集成环境&#xff0c;用于管理任何SQL基础设施&#xff0c;从SQL Server到Azure SQL数据库。SSMS提供了各种工具来配置、监控和管理SQL Server的实体和组件。以下是一篇详细的使用指南&#xff0c;涵盖了SSMS的主要功能和操作。 1.…

感谢问界M9一打二十,让我们买到这么便宜的BBA

文 | AUTO芯球 作者 | 雷慢 国产豪华车&#xff0c;终于扬眉吐气了&#xff0c; 你敢信吗&#xff1f;在50万以上豪华车中&#xff0c; 现在问界M9一款车的月销量&#xff0c; 是其他前20名销量的总和&#xff01; 要知道&#xff0c;它的对手是各种宝马、奔驰、雷克萨斯的…

基于python+django+vue的医院预约挂号系统

作者&#xff1a;计算机学姐 开发技术&#xff1a;SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等&#xff0c;“文末源码”。 专栏推荐&#xff1a;前后端分离项目源码、SpringBoot项目源码、SSM项目源码 系统展示 【2025最新】基于协同过滤pythondjangovue…

APP测试基本流程与APP测试要点总结

&#x1f345; 点击文末小卡片&#xff0c;免费获取软件测试全套资料&#xff0c;资料在手&#xff0c;涨薪更快 APP测试实际上依然属于软件测试的范畴&#xff0c;是软件测试的一个真子集&#xff0c;所以经典软件测试理论&#xff0c;依然是在APP测试中有效的&#xff0c;只…

RocketMQ实战与集群架构详解

目录 一、MQ简介 MQ的作用主要有以下三个方面 二、RocketMQ产品特点 1、RocketMQ介绍 2、RocketMQ特点 三、RocketMQ实战 1、快速搭建RocketMQ服务 2、快速实现消息收发 1. 命令行快速实现消息收发 2. 搭建Maven客户端项目 3、搭建RocketMQ可视化管理服务 4、升级分…

镀金引线---

一、沉金和镀金 沉金和镀金都是常见的PCB金手指处理方式&#xff0c;它们各有优劣势&#xff0c;选择哪种方式取决于具体的应用需求和预算。 沉金&#xff08;ENIG&#xff09;是一种常用的金手指处理方式&#xff0c;它通过在金手指表面沉积一层金层来提高接触性能和耐腐蚀性…

【鸿蒙 HarmonyOS NEXT】popup弹窗

一、背景 给组件绑定popup弹窗&#xff0c;并设置弹窗内容&#xff0c;交互逻辑和显示状态。 常见场景&#xff1a;点击按钮弹出popup弹窗&#xff0c;并对弹窗的内容进行交互逻辑处理&#xff0c;如&#xff1a;弹窗内点击跳转到其他页面 二、给组件绑定Popup弹窗 PopupOp…

【重学 MySQL】三十四、加密与解密函数

【重学 MySQL】三十四、加密与解密函数 在 MySQL 中&#xff0c;加密与解密函数是保护数据安全的重要手段&#xff0c;它们允许开发者在存储和传输敏感数据时保持数据的保密性。 函数名描述返回值类型备注AES_ENCRYPT(str, key_str)使用 AES 算法加密字符串BLOB返回加密后的二…

Quartz框架介绍

一、何为Quartz Quartz是OpenSymphony开源组织在Job scheduling领域又一个开源项目&#xff0c;它可以与J2EE与J2SE应用程序相结合也可以单独使用。Quartz可以用来创建简单或为运行十个&#xff0c;百个&#xff0c;甚至是好几万个Jobs这样复杂的程序。Jobs可以做成标准的Java组…

【每日刷题】Day125

【每日刷题】Day125 &#x1f955;个人主页&#xff1a;开敲&#x1f349; &#x1f525;所属专栏&#xff1a;每日刷题&#x1f34d; &#x1f33c;文章目录&#x1f33c; 1. 17. 电话号码的字母组合 - 力扣&#xff08;LeetCode&#xff09; 2. LCR 080. 组合 - 力扣&#…

数字IC设计\FPGA 职位经典笔试面试整理--语法篇 Verilog System Verilog(部分)

注&#xff1a; 资料都是基于网上一些博客分享和自己学习整理而成的 Verilog 1. 数据类型 Verilog一共有19种数据类型 基础四种数据类型&#xff1a;reg型&#xff0c;wire型&#xff0c;integer型&#xff0c;parameter型 reg型   reg类型是寄存器数据类型的关键字。寄存…

VBS学习1 - 语法、内置函数、内置对象

文章目录 概述执行脚本语法转义字符文本弹框msgbx定义变量dim&#xff08;普通类型&#xff09;定义接收对象set字符拼接&用户自定义输入框inputbox以及输入判断ifelse数组&#xff08;参数表最大索引&#xff0c;非数组容量&#xff09;有容量无元素基于元素确定容量 循环…

解密.bixi、.baxia勒索病毒:如何安全恢复被加密数据

导言 在数字化时代&#xff0c;数据安全已成为个人和企业面临的重大挑战之一。随着网络攻击手段的不断演进&#xff0c;勒索病毒的出现尤为引人关注。其中&#xff0c;.bixi、.baxia勒索病毒是一种新型的恶意软件&#xff0c;它通过加密用户的重要文件&#xff0c;迫使受害者支…

Java-数据结构-优先级队列(堆)-(一) (;´д`)ゞ

文本目录&#xff1a; ❄️一、优先级队列&#xff1a; ➷ 1、概念&#xff1a; ❄️二、优先级队列的模拟实现&#xff1a; ➷ 1、堆的概念&#xff1a; ➷ 2、堆的性质&#xff1a; ➷ 3、堆的创建&#xff1a; ▶ 向下调整&#xff1a; ➷ 4、堆的插入和删除&#xff1a; …

Java 值传递与引用传递

以下是包含引用的完整博客文章&#xff0c;以markdown格式输出&#xff0c;附带“Java 只有值传递”的相关参考来源。 Java 是一种广泛使用的面向对象编程语言&#xff0c;但对于值传递&#xff08;pass by value&#xff09;和引用传递&#xff08;pass by reference&#xff…

只有公网IP地址可以申请SSL证书吗?

是的&#xff0c;只有公网IP地址可以申请SSL证书。这是因为SSL证书主要用于加密互联网上的数据传输&#xff0c;确保通信的安全性和数据的完整性。而公网IP地址是互联网通信的核心&#xff0c;具有全球唯一性&#xff0c;允许互联网上的用户通过它们访问互联网上的资源。 具体…

北森笔试测评之言语理解到底难不难

前篇笔记我提到过&#xff0c;言语理解是最难的&#xff0c;有同学质疑了。言语我都会做呀&#xff0c;甚至有的可以搜到&#xff0c;而图标和图形我有的不会。这里需要指出&#xff0c;会做不等于作对&#xff0c;可以回顾到高中甚至初中的时候&#xff0c;感觉做的好的一般都…

dcmtk的自动输入数据纠错模式对DICOMDIR读取的影响

软件版本 dcmtk 3.6.7 自动纠错的全局变量 输入数据的自动纠错是一个全局变量&#xff0c;定义在dcmtk/dcmdata/dcobject.h中&#xff0c;如下所示&#xff1a; /** This flags defines whether automatic correction should be applied to input* data (e.g.\ stripping …

【多视图学习】基于多视图信息瓶颈的鲁棒表示学习

论文链接 代码链接 0.论文摘要和信息 摘要 信息瓶颈原理为表示学习提供了一种信息论方法&#xff0c;通过训练编码器来保留与预测标签相关的所有信息&#xff0c;同时最小化表示中的其他过量信息的量。然而&#xff0c;原始配方需要标记数据来识别多余的信息。在这项工作中&…