当前位置: 首页 > news >正文

MyBatis-Plus 与 Redis

1 MyBatis-Plus

1.1 MyBatis-Plus 简介

MyBatis 是一款优秀的持久层框架,它能将接口和 Java POJO(Plain Old Java Objects,普通 Java 对象)映射为数据库中的数据。支持自定义 SQL、存储过程,功能强大。MyBatis 承担了几乎所有的 JDBC 代码,包括设置参数和获取结果等工作,可通过简单的 XML 或注解进行配置。

MyBatis-Plus 是 MyBatis 的最佳搭档,它只做增强不做改变,旨在简化开发流程、提高开发效率。可在 Github 上查看其相关内容。

1.2 搭建 Spring Boot 2.x

Spring Boot 凭借自动配置功能,降低了开发复杂性,同时支持基于 Maven 的多种依赖管理,有助于开发者轻松构建企业级应用。

1.2.1 构建项目

在构建项目时,相关设置如下:

  • 项目名称:springboot-mybatisplus
  • Java 项目路径:D:\maven-workspace
  • 构建系统:IntelliJ Maven
  • JDK:1.8.0_311
  • GroupId:com.ffyc.springboot
  • ArtifactId:springboot-mybatisplus

此外,还可选择创建 Git 仓库、添加示例代码等。同时,可配置 Maven 的相关参数,如仓库地址等,常用的阿里云仓库地址如下:

仓库名称阿里云仓库地址阿里云仓库地址 (老版)源地址
centralhttps://maven.aliyun.com/repository/centralhttps://maven.aliyun.com/nexus/content/repositories/centralCentral Repository:
publichttps://maven.aliyun.com/repository/publichttps://maven.aliyun.com/nexus/content/groups/publiccentral 仓和 jcenter 仓的聚合仓
grade-pluginhttps://maven.aliyun.com/repository/grade-pluginhttps://maven.aliyun.com/nexus/content/repositories/grade-pluginhttps://plugins.gradle.org/m2/
apache snapshotshttps://maven.aliyun.com/repository/apache-snapshotshttps://maven.aliyun.com/nexus/content/repositories/apache-snapshotsIndex of /groups/snapshots
1.2.2 引入依赖

引入依赖时,先引入 Spring Boot 父依赖:

xml

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.6.13</version>
</parent>

接着引入数据库相关依赖:

xml

<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
</dependency>
<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>druid-spring-boot-starter</artifactId>
    <version>1.2.18</version>
</dependency>
<dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>mybatis-plus-boot-starter</artifactId>
    <version>3.5.10.1</version>
</dependency>
1.2.3 Spring Boot 配置

application-dev.yml中进行配置:

yaml

# 配置服务器
server:
  port: 9099
# 数据源配置
spring:
  datasource:
    druid:
      url: jdbc:mysql://localhost:3306/book_db?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true
      username: root
      password: 123456
      driver-class-name: com.mysql.cj.jdbc.Driver
# 日志配置
logging:
  level:
    com.ffyc.springboot: debug

application.yml中激活开发环境配置:

yaml

spring:
  profiles:
    active: dev
1.2.4 建包

在项目中创建com.ffyc.springboot相关包结构。

1.2.5 main 方法

编写App类作为 Spring Boot 应用的入口:

java

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class App {
    public static void main(String[] args) {
        SpringApplication.run(App.class, args);
    }
}
1.2.6 实体类

创建Book实体类,并使用注解映射数据库表:

java

package com.ffyc.springboot.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

@TableName("book_tab")
@Data
@NoArgsConstructor
@AllArgsConstructor
public class Book {
    @TableId(value = "book_id", type = IdType.AUTO)
    private Integer id; // 主键
    @TableField("book_title")
    private String title;
    @TableField("book_author")
    private String author;
    @TableField("book_price")
    private Double price;
    @TableField("book_desc")
    private String desc;
}
1.2.7 数据库操作

创建IBookMapper接口,继承BaseMapper<Book>,用于数据库操作:

java

package com.ffyc.springboot.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.ffyc.springboot.entity.Book;
import org.apache.ibatis.annotations.Mapper;

@Mapper
public interface IBookMapper extends BaseMapper<Book> {
}

1.3 构建测试环境

使用 JUnit4 构建测试环境,编写测试类IBookMapperTest

java

package com.ffyc.springboot.mapper;

import com.ffyc.springboot.entity.Book;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;

import static org.junit.Assert.*;

@RunWith(SpringJUnit4ClassRunner.class)
@SpringBootTest
public class IBookMapperTest {
    @Autowired
    private IBookMapper mapper;

    @Test
    public void testSave() {
        Book book = new Book();
        book.setTitle("西游记");
        book.setAuthor("吴承恩");
        book.setPrice(88.88);
        book.setDesc("一段奇幻之旅....");
        mapper.insert(book);
    }

    @Test
    public void testUpdate() {
        Book book = new Book();
        book.setId(1);
        book.setTitle("西游记");
        book.setAuthor("吴承恩");
        book.setPrice(777.88);
        book.setDesc("一段奇幻神佛之旅....");
        mapper.updateById(book);
    }
}

1.4 MyBatis-Plus 增删改查

1.4.1 添加数据

java

Book book = new Book();
book.setTitle("西游记");
book.setAuthor("吴承恩");
book.setPrice(87.88);
book.setDesc("两段奇幻之旅....");
mapper.insert(book);
1.4.2 修改数据

java

Book book = new Book();
book.setId(1);
book.setTitle("西游记");
book.setAuthor("吴承恩");
book.setPrice(777.88);
book.setDesc("一段奇幻神佛之旅....");
mapper.updateById(book);
1.4.3 删除数据

java

mapper.deleteById(1);
1.4.4 查询数据

使用LambdaQueryWrapper进行查询:

java

LambdaQueryWrapper<Book> queryWrapper = new LambdaQueryWrapper<>();
// queryWrapper.like(Book::getAuthor, "吴");
queryWrapper.eq(Book::getAuthor, "吴承恩").eq(Book::getTitle, "西游记");
System.out.println(mapper.selectList(queryWrapper));
1.4.4.1 常用方法

  • eq:相等
  • eq().eq():相当于 SQL 中的AND
  • in:范围查询
  • like:模糊查询
  • likeRight:右侧通配符查询
  • likeLeft:左侧通配符查询
  • or():或
  • and():并且

1.5 MyBatis 分页

1.5.1 分页原理

MyBatis-Plus 的PaginationInnerInterceptor提供分页功能,通过LIMIT m, n实现数据分页显示,例如SELECT * FROM book_tab limit 0,50。从 v3.5.9 起,PaginationInnerInterceptor已分离出来,使用时需单独引入mybatisplus - jsqlparser依赖。

2 Redis

2.1 安装

在 Windows 上安装 Redis 时,可选择安装路径,可将 Redis 安装目录添加到系统 PATH 环境变量中。同时可设置 Redis 运行端口(默认为 6379),选择是否在 Windows 防火墙中添加例外,以及是否设置内存限制等。安装完成后,可通过redis-cli进行测试,如输入ping命令,若返回PONG则表示安装成功。

2.2 Redis 是什么

Redis 是一个开源(BSD 许可)的内存存储数据结构服务器,可用作数据库、高速缓存和消息队列代理。它支持多种数据类型,如字符串、哈希表、列表、集合、有序集合、位图、hyperloglogs 等。Redis 内置复制、Lua 脚本、LRU 收回、事务以及不同级别磁盘持久化功能,通过 Redis Sentinel 提供高可用,通过 Redis Cluster 提供自动分区。

2.3 Redis hello

Redis 安装目录下包含多个文件,如dump.rdb(RDB 文件)、redis.windows.conf(CONF 文件)等。

2.4 Redis 的存储类型

Redis 支持字符串、哈希表、列表、集合、有序集合、位图、hyperloglogs 等数据类型。

2.4.1 内置命令

Redis Expire命令用于设置key的过期时间,格式为expire key value

2.4.2 字符串

SET命令用于设置字符串类型的key - value对,格式为SET KEY_NAME VALUE。例如,创建天气keyweather),并设置 30 秒之后过期。

2.5 Spring Boot 整合 Redis

2.5.1 下载

在项目中添加 Spring Boot 与 Redis 整合的依赖:

xml

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
2.5.2 配置

在配置文件中添加 Redis 相关配置:

yaml

spring:
  redis:
    port: 6379
    host: localhost
    database: 0
2.5.3 编码

配置完成后,即可在项目中使用 Redis 进行数据存储和读取等操作。

http://www.dtcms.com/a/55142.html

相关文章:

  • HarmonyOS Next元服务网络请求封装实践
  • 小米安全攻防工程师面试题解析
  • VMware16虚拟机安装Linux-centos教程最新
  • 时序数据库 InfluxDB 3.0 版本性能实测报告:写入吞吐量提升效果验证
  • starrocks如何配置多个hive数据源,其中一个是kerberos认证
  • 【第19节】C++设计模式(行为模式)-Command(命令)模式
  • Windows 11【1001问】打开Windows 11任务管理器的11种方法
  • MySQL中的GROUP BY、DISTINCT和HAVING说明
  • java开发常用注解
  • Flink深入浅出之01:应用场景、基本架构、部署模式
  • redis热key
  • C++【红黑树--debug】
  • OBJARX
  • 死锁的产生以及如何避免
  • loadingcache优化
  • STM32中断向量表的个人理解
  • 第 k 个缺失的正整数
  • DevSecOps CI/CD 管道中数字供应链安全的集成策略
  • 应用案例 | 精准控制,高效运行—宏集智能控制系统助力SCARA机器人极致性能
  • App Standby省电机制流程
  • 常见排序算法鉴赏(原理剖析+动图演示)
  • Vue-flow中动态流程图的实现
  • ffmpeg windows 基本命令
  • 安装并运行hadoop程序
  • macos 程序 运行
  • clang-format安装配置与vscode支持
  • 【附源码】Java动漫视频网站源码【带弹幕系统】+SpringBoot+VUE+前后端分离
  • 有关Java中的IO(2) --字符流以及其他流
  • upload-labs详解(13-20)文件上传分析
  • manus是什么?能干啥?