- 博客(27)
- 收藏
- 关注
原创 Nacos容器挂载启动
拉取nacos镜像,并启动作为临时容器,便于获取相应配置文件;docker search nacos;docker pull nacos/nacos-server启动nacos镜像构建临时容器docker run -p 8848:8848 --name Mynacos -d nacos/nacos-server:latest宿主机创建用于挂载的文件,然后删除临时容器(保留镜像);#创建文件夹mkdir -p /mydata/nacos/confmkdir -p /my..
2022-03-07 18:06:16
478
原创 MyBatis Plus对关联查询一对多 分页不准确问题解决
今天在和前端联调的时候,突然被告知接口分页有问题,不准确,随后debug发现的确如此:xml代码:<resultMap id="getRoleInfoMap" type="com.lylb.casecenter.entity.vo.RoleVO"> <id column="roleId" property="id"/> <result column="roleName" property="name"/> <co
2022-03-02 16:42:56
2972
3
原创 MySQL主从复制搭(主:linux,从:windows)
前言今天实操了下搭建mysql的主从复制,特此记录下,便于以后回顾。步骤详细步骤可以参见 MySQL主从复制(linux主+windows从)踩坑总结一般对于正式环境来讲,需要保证主从mysql的版本一致。但是不一致,也是可以的。这里我linux服务器上面使用的是mysql-5.7.36 ,windows上面使用的是 mysql-8.0.26;mysql配置文件里面的[mysqld]表示其包含的设置是针对MySQL服务器起作用的,不能删除,由于我windows上把一般配置和主从复制的配置分开了
2021-12-28 18:00:05
827
1
原创 Linux安装mysql
前言最近在搞mysql的主从复制,顺便记录下安装流程,便于以后回顾安装步骤下载mysql压缩包,这里使用的是5.7MySQL官网5.7版本进入服务器,创建一个临时目录,将压缩包上传,解压tar -xzvf mysql-5.7.36-linux-glibc2.12-x86_64.tar.gz将文件夹移动到/usr/local目录下并重命名为mysqlmv mysql-5.7.36-linux-glibc2.12-x86_64 /user/local/mysql安装
2021-12-28 15:42:42
569
原创 MySQL操作锁表如何解决
今天在用 Navicat Premium 操作数据库的时候,发现一张表怎么都打不开,最开始还以为是网络的问题,后面才反应过来应该是锁表了,虽然InnoDB支持锁表,但是自己还是第一次遇到,所以琢磨了以下解决方法,以此记录下。首先,我们得知道 MySQL在什么情况下会发生锁表而下面命令就是用来查看当前运行的所有事务select * from information_schema.innodb_trx如果此时表被锁,那么肯定这次的事务是还没有提交的。然后我们使用 ** kill trx_mysql
2021-12-22 11:25:02
2457
原创 RabbitMq 消息丢失和消息手动确认处理
1.安装依赖<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-amqp</artifactId></dependency>2.配置rabbitmq配置文件 rabbitmq: host: 127.0.0.1 port: 5672 username: zytoo
2021-12-10 11:56:55
1848
原创 MySQL索引底层数据结构
定义索引是帮助MySQL高效获取数据的排好序的数据结构索引数据结构二叉树(不适用)弊端:对于线性增长的数据依然要走全表扫描。红黑树Hash表B-tree
2021-11-21 20:51:22
609
原创 Docker部署Mysql数据库
原谅如此简单粗暴hah~~拉取镜像docker pull mysql:5.7.26创建mysql数据相关的挂载目录mkdir -p /usr/local/workspace/mysql/data /usr/local/workspace/mysql/log /usr/local/workspace/mysql/conf 启动命令docker run -p 3306:3306 --name mysql -v /usr/local/workspace/mys
2021-10-26 16:32:04
153
原创 Nginx root和alias的区别
rootlocation /i/ { root /p/data;}如上配置,请求 http://www.com/i/file.jpg 这个地址时,实际上在服务器上真正对应的文件地址应该是 /p/data/i/file.jpg真实的路径其实是 root 指定的值加上location 指定的值。aliasalias指定的路径是location的别名,不管location的值怎么去配置,alias指定的路径才是资源的真实路径。location /i/ { alias /p/data;}如
2021-10-19 10:46:28
845
原创 Mybatis踩坑——if 标签条件判断一直不成立
由于数据库中将审核状态字段定义的是audit_status:审核状态 0:待审核;1:审核通过但是在Mybatis xml文件中的写法是下面这样,导致if标签判断一直不生效 <if test="caseLibraryDTO.auditStatus != null and caseLibraryDTO.auditStatus != '' "> and a.audit_status = #{caseLibraryDTO.auditStatus} </if>
2021-10-14 10:26:36
1765
原创 volatile与synchronized 比较
volatile 是线程同步的轻量级实现,所以性能会比 synchronized 好; volatile 只能修饰变量,而 synchronized 可以修饰方法,代码块;当然随着jdk1.8的发布,synchronized 的性能也是有很大的提升;多线程访问 volatile 变量不会发生阻塞,而 synchronized 可能会阻塞;volatile 能保证数据的可见性,但是不能保证原子性; synchronized 可以保证可见性,也可以保证原子性;volatile 关键字解决的是变量在多.
2021-09-16 11:49:21
233
原创 SpringBoot自动配置原理
自动配置原理Springboot启动类中@SpringBootApplication 注解里面主要的三个注解为@SpringBootConfiguration@EnableAutoConfiguration@ComponentScan其中 @EnableAutoConfiguration 注解开启自动配置功能;@EnableAutoConfiguration 作用@EnableAutoConfiguration 中的 @import 注解利用 EnableAutoConfigurati
2021-08-31 20:34:08
132
原创 MongoDB下载安装
进入MongoDB官网,Products -> 选择SOFTWARE下的MongoDB Server选择对应版本下载下载成功之后点击安装,Complete安装全部插件, Custom自定义安装,这里选择自定义配置环境变量(1) 新增系统变量MOGONDB_HOME(2)path下添加打开服务查看启动如果此时服务启动不成功,报错 “WIndows无法启动 错误1053”解决办法:输入下面指令删除MongoDB服务器sc delete Mong..
2021-07-20 14:21:41
262
原创 Iterator定义及使用Iterator遍历 map 集合的几种方式
定义为了方便的处理集合中的元素,Java中出现了一个对象,该对象提供了一些方法专门处理集合中的元素.例如删除和获取集合中的元素.该对象就叫做迭代器(Iterator).对 Collection 进行迭代的类,称其为迭代器。还是面向对象的思想,专业对象做专业的事情,迭代器就是专门取出集合元素的对象。但是该对象比较特殊,不能直接创建对象(通过new),该对象是以内部类的形式存在于每个集合类的内部。如何获取迭代器?Collection接口中定义了获取集合类迭代器的方法(iterator()),所以所有的Co
2021-07-14 21:59:52
3123
原创 Java 线程池
这里写自定义目录标题一、为什么要使用线程池二、线程池原理一、为什么要使用线程池使用线程池主要有以下三个原因:创建/销毁线程需要消耗系统资源,线程池可以复用已创建的线程。控制并发的数量。并发数量过多,可能会导致资源消耗过多,从而造成服务器崩溃。(主要原因)可以对线程做统一管理。二、线程池原理Java中的线程池顶层接口是Executor接口,ThreadPoolExecutor是这个接口的实现类。ThreadPoolExecutor类提供了四种构造方法 public ThreadPoo
2021-07-08 00:05:54
142
原创 Redis客户端常用操作命令
通用1.通过CMD命令窗口远程登陆redis-cli -h ip -p 6379 -a "123456"2.切换库select num //num表示库的编号0-153.清除数据(大家自行测试哈哈~)flushall //清空整个redis数据,所有库flushdb //清除当前库的数据String类型set key value //设置一个新的键值get key //通过键获取值mset //同时设置一个或者多个key-value对mget //返回所有(一个或者多
2021-06-19 23:49:41
1382
原创 Spring Bean的生命周期
Spring Bean的作用域在了解Spring Bean的生命周期之前,我们首先需要先了解一下Spring Bean的作用域:作用域的种类http://c.biancheng.net/view/4260.htmlSpring Bean的作用域共有5类:singleton单例模式,使用 singleton 定义的 Bean 在 Spring 容器中只有一个实例,这也是 Bean 默认的作用域。prototype原型模式,每次通过 Spring 容器获取 prototype 定义的 B
2021-06-04 21:39:14
166
原创 String s ; 和 String s = null ; 和 String s = ““ ; 之间的区别
String s表示申明了一个引用变量,但是该变量并没有初始化,所以对该变量的所有操作,除了初始化赋值意外,都会引发异常。String s=null表示申明了一个引用变量,并且进行了初始化,但是该引用并没有指向任何对象,但是可以把它作为一个参数进行传递,或者进行其他引用,但是不能调用它作为对象的方法。String s=""表示申请了内存资源,但资源空间值为空。该语句表示声明并引用到一个对象,只不过这个对象为0个字节。所以既然有了对象,就可以调用对象的方法。String s = String.Em
2021-06-04 20:02:08
281
原创 Spring中Bean的生命周期
Been的实例化过程图解一、实例化Bean对于BeanFactory容器,当客户向容器请求一个尚未初始化的bean时,或初始化bean的时候需要注入另一个尚未初始化的依赖时,容器就会调用createBean进行实例化。 对于ApplicationContext容器,当容器启动结束后,便实例化所有的bean。 容器通过获取BeanDefinition对象中的信息进行实例化。并且这一步仅仅是简单的实例化,并未进行依赖注入。 实例化对象被包装在BeanWrapper对象中,BeanWrapper提供了设置对
2021-05-31 10:29:29
95
转载 java中接口和抽象类的区别
java中接口和抽象类的区别Java提供和支持创建抽象类和接口。它们的实现有共同点,不同点在于:一句话总结:Java提供和支持创建抽象类和接口。它们的实现有共同点,不同点在于:接口中所有的方法隐含的都是抽象的。而抽象类则可以同时包含抽象和非抽象的方法;类可以实现很多个接口,但是只能继承一个抽象类;类可以不实现抽象类和接口声明的所有方法,当然,在这种情况下,类也必须得声明成是抽象的;抽象类可以在不提供接口方法实现的情况下实现接口。Java接口中声明的变量默认都是final的。抽象类可以包含非fi
2021-05-30 15:37:38
87
原创 Aviator学习笔记
什么是AviatorAviator是一个轻量级、高性能的、使用java语言实现的一个求值引擎,它能够动态的将表达式编译成字节码并运行,主要用于各种表达式的动态求值。Aviator的特性支持大部分运算操作符,包括算术操作符、关系运算符、逻辑操作符、位运算符、正则匹配操作符(=~)、三元表达式?: ,并且支持操作符的优先级和括号强制优先级。支持大整数和精度运算(2.3.0版本引入)。支持函数调用和自定义函数。内置支持正则表达式匹配,类似Ruby、Perl的匹配语法,并且支持类Ruby的$digit
2020-11-30 15:51:46
520
4
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人