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

尚庭公寓项目记录

数据库准备

  • 保留图像时,保存图像地址就可以
  • 数据表不是越多越好,可以用中间表来实现俩个表之间的联立
  • 这样方便查数据但是却带来性能问题
  • 而减少表的jion但是提高性能,以冗余来换去性能
  • 采用MySQL,InnoDB存储引擎
  • 物理删除和逻辑删除
  • 逻辑删除有一个标记,后面会过滤掉
  • 大数据时代,数据比较重要,被删除的数据也很重要

接口定义

  • 根据页面的信息,每个模块需要什么接口,哪些可以共用一个接口
  • 但终归是增删改查,但是看需要通过什么来查询信息,是有条件还是查询全部
  • 根据ID删除属性和值,根据分页查询列表,比如嵌套的列表,省市县等
  • 上传图像功能
  • 根据ID查询房间详细信息(用作修改时的表单回显)
  • 登录功能:获取图形验证码,请求登录,获取登录用户信息
  • 增删改查,一般保存是不向后台新增ID的,该增加是有的

准备开发环境

两台Linux虚拟机

在其中一台,部署MySQL,Redis,MinIO

技术储备

MyBatis Plus快速入门

创建一个表,设置它的编码方式

CREATE DATABASE hello_mp CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;

前面设定字符集,后面设定字符集的排序规则

id设置了自动增长,bigint比int有更长的字符设定

comment是对数据库对象的描述

primary是把id设置为主键

引入Maven依赖的时候,groupId一般写反向域名格式,来避免进行冲突

配置MySQL的时候,下面的URL是虚拟机的IP地址

创建实体时,Ctrl加v直接生成对应实体类

实体类注解:

通用Mapper

通用service

继承泛型接口,需要传入实体类

通过继承通用mapper接口和通用service接口

只不过方法略有区别

但是,实际上,mapper方法是封装在service接口下的

都是先定义一个接口,然后再定义一个实现类

条件构造器

MyBatis Plus共提供了两类构造器,分别是`QueryWrapper`和`UpdateWrapper`。其中`QueryWrapper`主要用于查询、删除操作,`UpdateWrapper`主要用于更新操作

QueryWrapper支持链式操作

考虑优先级的情况,匿名的子类对象可以替换成lambda表达式

LambdaWrapperTest类

传入的格式不一样

分页插件

总结:

简单的查询可以用通用Mapper和通用service

复杂的查询需要用条件构造器和分页插件

MyBatisX插件

使用它可根据数据库快速生成EntityMapperMapper.xmlServiceServiceImpl等代码

MinIO

对象存储服务

可以上传图片什么的,为其分配一个ID,即url,端点加绝对路径

Redis

概念:

基于内存储存,存储性能速度惊人,通过键值对储存,通常用作缓存服务

特点:

高性能,支持多种数据结构,持久化,灵活的数据过期策略

持久化方式:

定期快照 :有时间间隔,但是不实时,只能恢复最近的快照,容易数据丢失

实时记录写操作日志:恢复的时候比较慢,写操作太多

应用场景:

用作缓存,缓存可以显著提升访问速度,降低数据库压力。

Redis常用数据类型及命令:

http://www.lryc.cn/news/547206.html

相关文章:

  • 飞算JavaAI编程工具集成到idea中
  • 【每日八股】计算机网络篇(二):TCP 和 UDP
  • 课程《MIT Introduction to Deep Learning》
  • GCC RISCV 后端 -- C语言语法分析过程
  • UI组件库及antd
  • Windows下使用ShiftMediaProject方法编译FFmpeg
  • 【计算机网络入门】TCP拥塞控制
  • 无人机遥控器无线传输技术解析!
  • 修改hosts文件,修改安全属性,建立自己的DNS
  • MySQL零基础教程16—表连接进阶
  • 【软件系统架构】系列三:数据库系统之三
  • lamp平台介绍
  • 826考研
  • 局域网自动识别机器名和MAC并生成文件的命令
  • todo: 使用融云imserve做登录(android)
  • Mac OS升级后变慢了,如何恢复老系统?
  • cursor使用经验分享(java后端服务开发向)
  • 初次使用 IDE 搭配 Lombok 注解的配置
  • vue 安装依赖npm install过程中报错npm ERR! cb() never called!
  • android接入rocketmq
  • libilibi项目优化(1)使用Redis实现缓存
  • The Rust Programming Language 学习 (二)
  • http链接转成https的链接的几种方法
  • STM32——串口通信 UART
  • mybatis日期格式与字符串不匹配bug
  • 文献分享: ConstBERT固定数目向量编码文档
  • 学习记录-用例设计编写
  • 学习工具的一天之(burp)
  • el-tree右键节点动态位置展示菜单;el-tree的节点图片动态根据节点属性color改变背景色;加遮罩层(opacity)
  • K8s 1.27.1 实战系列(一)准备工作