【MybatisPlus Docker】

文章目录

  • MyBatisPlus
    • MyBatisPlus 注解
    • Wrapper
    • MybatisPlus批量插入(saveBatch)
    • MyBatisPlus 分页插件
  • Docker
    • Dockerfile
    • Docker网络
    • Docker部署项目

黑马微服务文档

MyBatisPlus

MyBatisPlus 注解

@TableName
@TableId
@TableField

MyBatisPlus也支持手写SQL的

mybatis-plus:mapper-locations: "classpath*:/mapper/**/*.xml" # Mapper.xml文件地址,当前这个是默认值。

Wrapper

QueryWrapper
UpdateWrapper
LambdaQueryWrapper

  • LambdaQueryWrapper
  • LambdaUpdateWrapper

MybatisPlus批量插入(saveBatch)

MybatisPlus的批处理是基于PrepareStatement的预编译模式,然后批量提交,最终在数据库执行时还是会有多条insert语句,逐条插入数据

MySQL的客户端连接参数rewriteBatchedStatements

spring:datasource:url: jdbc:mysql://127.0.0.1:3306/mp?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&serverTimezone=Asia/Shanghai&rewriteBatchedStatements=truedriver-class-name: com.mysql.cj.jdbc.Driverusername: rootpassword: MySQL123

MyBatisPlus 分页插件

https://baomidou.com/pages/97710a/#paginationinnerinterceptor

@Configuration
public class MybatisConfig {@Beanpublic MybatisPlusInterceptor mybatisPlusInterceptor() {// 初始化核心插件MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();// 添加分页插件interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL));return interceptor;}
}

分页统一对象

@Data
@ApiModel(description = "分页结果")
public class PageDTO<T> {@ApiModelProperty("总条数")private Long total;@ApiModelProperty("总页数")private Long pages;@ApiModelProperty("集合")private List<T> list;@ApiModelProperty("返回状态码")private int code;
}

Docker

Dockerfile

https://docs.docker.com/engine/reference/builder/

Docker网络

# 1.用基本命令,寻找Networks.bridge.IPAddress属性
docker inspect mysql
# 也可以使用format过滤结果
docker inspect --format='{{range .NetworkSettings.Networks}}{{println .IPAddress}}{{end}}' mysql
# 得到IP地址如下:
172.17.0.2# 2.然后通过命令进入dd容器
docker exec -it dd bash# 3.在容器内,通过ping命令测试网络
ping 172.17.0.2
# 结果
PING 172.17.0.2 (172.17.0.2) 56(84) bytes of data.
64 bytes from 172.17.0.2: icmp_seq=1 ttl=64 time=0.053 ms
64 bytes from 172.17.0.2: icmp_seq=2 ttl=64 time=0.059 ms
64 bytes from 172.17.0.2: icmp_seq=3 ttl=64 time=0.058 ms

发现可以互联,没有问题。

但是,容器的网络IP其实是一个虚拟的IP,其值并不固定与某一个容器绑定,如果我们在开发时写死某个IP,而在部署时很可能MySQL容器的IP会发生变化,连接会失败。

所以,我们必须借助于docker的网络功能来解决这个问题,官方文档:
https://docs.docker.com/engine/reference/commandline/network/

# 1.首先通过命令创建一个网络
docker network create hmall# 2.然后查看网络
docker network ls
# 结果:
NETWORK ID     NAME      DRIVER    SCOPE
639bc44d0a87   bridge    bridge    local
403f16ec62a2   hmall     bridge    local
0dc0f72a0fbb   host      host      local
cd8d3e8df47b   none      null      local
# 其中,除了hmall以外,其它都是默认的网络# 3.让dd和mysql都加入该网络,注意,在加入网络时可以通过--alias给容器起别名
# 这样该网络内的其它容器可以用别名互相访问!
# 3.1.mysql容器,指定别名为db,另外每一个容器都有一个别名是容器名
docker network connect hmall mysql --alias db
# 3.2.db容器,也就是我们的java项目
docker network connect hmall dd# 4.进入dd容器,尝试利用别名访问db
# 4.1.进入容器
docker exec -it dd bash
# 4.2.用db别名访问
ping db
# 结果
PING db (172.18.0.2) 56(84) bytes of data.
64 bytes from mysql.hmall (172.18.0.2): icmp_seq=1 ttl=64 time=0.070 ms
64 bytes from mysql.hmall (172.18.0.2): icmp_seq=2 ttl=64 time=0.056 ms
# 4.3.用容器名访问
ping mysql
# 结果:
PING mysql (172.18.0.2) 56(84) bytes of data.
64 bytes from mysql.hmall (172.18.0.2): icmp_seq=1 ttl=64 time=0.044 ms
64 bytes from mysql.hmall (172.18.0.2): icmp_seq=2 ttl=64 time=0.054 ms

Docker部署项目

添加多配置文件和dockerfile部署文件

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

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

相关文章

金山云升级全栈云计算体系,做人工智能时代云上“助力者”

随着云原生、AIGC、大模型等新兴技术的迅速发展&#xff0c;智能化时代开启。云计算也正全面步入3.0时代&#xff0c;即云计算和人工智能深度融合的阶段。在这个阶段&#xff0c;人工智能技术成为云计算进一步释放潜力的核心推动力。 2024年1月4日&#xff0c;金山云举办了「云…

水母目标检测数据集VOC格式500张

水母&#xff0c;一种美丽而神秘的海洋生物&#xff0c;以其独特的形态和生态习性而备受瞩目。 水母的体型呈伞状&#xff0c;身体透明&#xff0c;有各种颜色和花纹。它们没有骨骼&#xff0c;身体由胶状物质组成&#xff0c;非常柔软和脆弱。水母通过触手上的刺细胞释放毒素…

从零学Java Object类

Java Object类 文章目录 Java Object类Object类Object类中的方法1 getClass()方法2 hashCode()方法3 toString()方法4 equals()方法面试题: 和 equals 方法的区别? 5 finalize()方法&#xff08;JDK1.9放弃 了解即可&#xff09; Object类 所有类的直接或间接继承Object&…

TypeScript 从入门到进阶之基础篇(四) symbol类型篇

系列文章目录 TypeScript 从入门到进阶系列 TypeScript 从入门到进阶之基础篇(一) ts基础类型篇TypeScript 从入门到进阶之基础篇(二) ts进阶类型篇TypeScript 从入门到进阶之基础篇(三) 元组类型篇TypeScript 从入门到进阶之基础篇(四) symbol类型篇 持续更新中… 文章目录 …

win10关闭打开文件安全警告

1.使用场景 在流水线上&#xff0c;因车间刷软件的程序不能下发到每一台电脑上&#xff0c;会使用共享文件夹的形式来共享程序。每次打开会弹出一下窗口&#xff0c;影响员工生产。 需要将安全警告关闭。2.解决步骤 1.winR键打开运行窗口&#xff0c;输入gpedit.msc&#xff…

云原生学习系列之基础环境准备(单节点安装kubernetes)

一、环境要求 操作系统CentOS 7.x-86_x64 硬件配置&#xff1a;内存2GB或2G&#xff0c;CPU 2核或CPU 2核&#xff0c;需要在虚拟机中提前设置好&#xff0c;不然后续会报错 二、系统初始化 1、设置主机名 # 在master节点执行 hostnamectl set-hostname master01 2、配置主…

HTML的简单介绍

文章目录 1. HTML1.1 HTML 基础认识1.2 快速生成代码框架1.3 HTML 基础标签 1. HTML 1.1 HTML 基础认识 什么是HTML呢&#xff1f; HTML叫做超文本标记语言。超文本&#xff1a;例如图片&#xff0c;视频&#xff0c;文本&#xff0c;声音&#xff0c;表格&#xff0c;链接等…

C++的一点知识记录

时间记录&#xff1a;2024/1/6 类定义&#xff0c;一般在头文件中进行定义不进行实现&#xff0c;在源文件中进行实现 class Person{ public://公共属性和方法定义区Person();//构造函数定义~Person(){};//析构函数加实现int age;//定义属性void printAge();//定义方法 protec…

计算机环境安全

操作系统安全----比如windows,linux 安全标识--实体唯一性 windows---主体&#xff1a;账户&#xff0c;计算机&#xff0c;服务 安全标识符SID-Security Identifier 普通用户SID是1000&#xff0c;管理用SID是500 linux---主体&#xff1a;用户&#xff0c;用户组&#xf…

【前端】[vue3] vue-router使用

提示&#xff1a;我这边用的是typeScript语法&#xff0c;所以js文件的后缀都是ts。 安装vue-router&#xff1a; &#xff08;注意&#xff1a;vue2引用vue-router3 vue3才引用vue-router4&#xff09; npm install vue-router4src文件夹下面创建 router/index.ts&#xff08;…

hb_zhyu编程的一路

人生历程&#xff1a; 开始&#xff1a; 走上编程或许并不是我的一开始的意愿&#xff0c;在小学我第一次接触积木编程&#xff0c;或许是它简单&#xff0c;又或许是我天赋异禀&#xff0c;在第一次接触就展现出异于常人的能力&#xff0c;并且产生浓厚的兴趣。 当我几乎可…

synchronized语法与Before/After模式

synchronized void method(){ ... } synchronized(obj){ ... } 不管是synchronized方法&#xff0c; 还是synchronized代码块&#xff0c; 都可以看做在“{”处获取锁&#xff0c; 在"}"处释放锁。 比较下使用synchronized的代码 与显式处理锁的代码。假设存在一个…

Halcon计算最小外接矩形Smallest_rectangle2

Halcon计算最小外接矩形Smallest_rectangle2 该算子用于求最小外接矩形。该算子的原型如下&#xff1a; smallest _rectangle2 (Regions : : : Row, Column, Phi, Lengthl, Length2)其各参数的含义如下。 参数1&#xff1a;Regions 表示输入的区域。 参数2和3&#xff1a;Row…

[HCTF 2018]Warmup

[HCTF 2018]Warmup wp 进入页面&#xff1a; 查看源码&#xff1a; 发现提示&#xff1a;source.php &#xff0c;直接访问&#xff0c;得到源代码&#xff1a; <?phphighlight_file(__FILE__);class emmm{public static function checkFile(&$page){$whitelist [&qu…

SolidUI Gitee GVP

感谢Gitee&#xff0c;我是一个典型“吃软不吃硬”的人。奖励可以促使我进步&#xff0c;而批评往往不会得到我的重视。 我对开源有自己独特的视角&#xff0c;我只参与那些在我看来高于自身认知水平的项目。 这么多年来&#xff0c;我就像走台阶一样&#xff0c;一步一步参与…

【精通C语言】:深入解析C语言中的while循环

&#x1f3a5; 屿小夏 &#xff1a; 个人主页 &#x1f525;个人专栏 &#xff1a; C语言详解 &#x1f304; 莫道桑榆晚&#xff0c;为霞尚满天&#xff01; 文章目录 &#x1f4d1;前言一、while循环1.1语法1.2 执行过程解析1.3 break1.4 continue &#x1f324;️全篇总结 &…

Python从请求头中获取参数(Burp Suite)

目录 爬虫获取 需求 代码 从Burp Suite请求体中获取参数 爬虫获取 需求 url参数分三种情况 1. json格式 2. form格式 3. xml格式 已知入参情况有两种 1. Burp Suite 拷贝的请求头信息 2. 爬虫抓取的请求头信息 已知参数位置情况有两种 1. url路径中 2. post请求…

jquery图形验证码

效果展示 js图形随机验证码&#xff08;表单验证&#xff09; html代码片段 <form class"formwrap"><div class"item"><input type"text" id"code_input" value"" placeholder"请输入验证码"/>…

macOS跨进程通信: FIFO(有名管道) 创建实例

一&#xff1a; 简介 在类linux系统中管道分为有名管道和匿名管道。两者都能单方向的跨进程通信。 匿名管道&#xff08;pipe&#xff09;: 必须是父子进程之间&#xff0c;而且子进程只能由父进程fork() 出来的&#xff0c;才能继承父进程的管道句柄&#xff0c;一般mac 开发…

(05)沉积——“更小、更多”,微细化的关键

01、沉积:“加法工艺” 在前几篇文章,我们一直在借用饼干烘焙过程来形象地说明半导体制程。在上一篇我们说到,为制作巧克力夹心,需通过“刻蚀工艺”挖出饼干的中间部分,然后倒入巧克力糖浆,再盖上一层饼干层。“倒入巧克力糖浆”和“盖上饼干层”的过程在半导体制程中就…