7.10学习笔记

Mybatis Plus

一、使用:

mapper类继承BaseMapper<实体类名称>

Mybatis Plus通过扫描实体类名称基于反射获取实体类信息作为数据库表信息

为了实现上述功能,Mybatis Plus 有一系列约定

  1. 将实体类的类名作为数据库表名,通过驼峰命名将第二个及以后大写的字母转变成小写,并在前面添加下划线。如:UserInfo实体类 ->  user_info
  2. 默认将实体类的id属性作为表的主键。
  3. 实体类的属性驼峰转下划线作为表的字段名。

如:userAddress实体类 ->  user_address

当我们定义的实体类不符合约定,或者想要自己定义表名、字段名等等,还提供了一系列注解来指定,本质上就是为了Mybatis Plus能够通过反射获取到实体类信息从而作为操作数据库表信息的根据。

相关注解如下:

@TableName:指定表名

假设有一个User类,数据库有个tb_user表。我们就可以加上@TableName注解指定。

如:@TableName(“tu_user”) 对应的就是数据库中的tb_user表。

@TableId:指定表中的主键字段信息

我们知道开发中,主键字段一般都会是自增的,或者自己希望设置主键值。

这时候@TableId注解就提供了一个 idType的参数用来设置。参数是一种枚举类型。

如果不指定自增长的话,默认的id就是assign_id   

@TableId(type = IdType.ASSIGN_ID)

@TableField:指定字段信息

通常情况下,只要实体类中的属性名与数据库表中的字段名是正确对应的,就可以不需要添加该注解.

1.但有一种特殊情况,就是变量名是以is开头的即使你与数据库表的字段名对应,Mybatis Plus在利用反射机制的时候就会将is去掉作为数据库表信息,导致无法扫描到真正的字段名。

如:isMarried -> married  数据库中:is_married  ,所以这时候就无法正确找到对应字段了。

2.当字段名是数据库的关键字的时候,在实体类中也要添加注解再加上两个单引号,进行转义。

如: @TableField(“ `order` ”)

private int order;

3.当实体类属性在数据库中不存在的时候,这时也要添加注解。

@TableField(exist = false)

二、mybatis plus 常用的配置(自己使用可以参考)

1. 配置文件位置

configLocation: 指定 MyBatis 配置文件的位置,如果使用 XML 配置。

2. 数据源配置

在 Spring Boot 或其他 Spring 应用中,通常通过 DataSource 配置来指定数据库连接信息。

3. 全局配置

GlobalConfig: 包括数据库表前缀、ID生成策略、SQL注入器、逻辑删除字段、自动填充字段等。

GlobalConfig.DbConfig: 数据库相关配置,如类型枚举、主键策略、数据库类型等。

4. Mapper 扫描

mapperLocations: 指定 MyBatis 的 mapper 文件位置,可以是 XML 映射文件或注解。

typeAliasesPackage: 指定实体类别名包,用于自动识别实体类。

5. 自动填充

MetaObjectHandler: 实现此接口可自定义字段的自动填充逻辑,如创建时间和更新时间的自动填充。

6. 拦截器配置

可以添加自定义的拦截器,例如分页拦截器 PaginationInterceptor。

7. 配置模板引擎

如使用 MyBatis Generator 自动生成代码,可能需要配置模板引擎,如 Freemarker 或 Velocity。

8. 性能分析插件

PerformanceInterceptor: 可以用来分析 SQL 执行效率,但不推荐在生产环境中使用。

9. 多租户配置

如果应用支持多租户,可以配置多租户插件。

10. 缓存配置

可以配置二级缓存或集成外部缓存如 Redis。

11. 日志配置

可以配置 MyBatis 日志输出级别和日志实现,如 SLF4J、Log4j 或 Logback。

12. 事务管理

通常由 Spring 管理,但在某些情况下,你可能需要配置 MyBatis Plus 的事务处理方式。

13. 代码生成器

mp.generator: 可以使用 MP 的代码生成器来自动生成实体类、Mapper、Service 和 Controller 等。

这些配置通常在 Spring Boot 的 application.properties 或 application.yml 文件中设置,或者在 Java 配置类中通过 @Configuration 和 @Bean 注解来定义。

  • 条件构造器(Wrapper)

继承图谱:

abstractWrapper 中的方法

  • docker

常用命令:

基础命令

docker version

显示 Docker 版本信息。

docker info

显示 Docker 系统的信息,包括存储驱动、资源使用情况等。

docker images

列出本地的所有镜像。

可以使用 -a 参数列出所有镜像,包括未被标签标记的镜像。

docker pull

从 Docker Hub 或其他注册表下载一个镜像。

docker build

使用 Dockerfile 构建一个镜像。

docker rmi

删除一个或多个镜像。

docker run

创建并运行一个容器,可以指定镜像、命令、环境变量等。

docker stop

停止一个或多个运行中的容器。

docker start

启动一个或多个已停止的容器。

docker rm

删除一个或多个容器。

docker ps

列出运行中的容器。

可以使用 -a 参数列出所有容器,包括已经停止的。

docker logs

显示容器的日志输出。

docker exec

在一个运行中的容器内执行命令。

docker commit

将容器的改动提交为一个新的镜像。

docker tag

为镜像添加新的标签。

docker push

将本地镜像推送到 Docker Hub 或其他注册表。

docker network

管理 Docker 网络。

docker volume

管理 Docker 卷。

高级命令

docker system

管理 Docker 系统,包括清理资源。

docker container

管理容器的更高级命令,如 docker container prune 清理所有已停止的容器。

docker image

管理镜像的更高级命令,如 docker image prune 清理未被标签标记的镜像。

docker plugin

管理 Docker 插件。

docker context

管理 Docker 的上下文,即 Docker 引擎的配置。

docker swarm

管理 Docker Swarm 集群。

docker stack

管理 Docker Swarm 上的堆栈,即一组服务。

docker secret

管理 Docker Swarm 的加密密钥。

docker node

管理 Docker Swarm 集群中的节点。

docker service

管理 Docker Swarm 上的服务。

docker trust

管理 Docker 镜像的签名和信任。

docker login

登录到 Docker 注册表。

docker logout

从 Docker 注册表登出。

docker部署mysql命令

docker run -d \

> --name mysql \

> -p 3306:3306 \

> -e TZ=Asia/Shanghai \

> -e MYSQL_ROOT-PASSWORD=123456 \

> mysql

docker run --name=mysql -p 3307:3306 -e MYSQL_ROOT_PASSWORD=123456 -d mysql

docker安装MySQL并启动:

https://juejin.cn/post/6844904036362092558?searchId=202407102055366327DC97C1BBB944B492

部署开发环境:

https://juejin.cn/post/6844903877473501192?searchId=202407102055366327DC97C1BBB944B492

目前还没有完成远程连接docker 部署下的MySQL

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值