- 博客(22)
- 收藏
- 关注
原创 关于数据库中索引的使用场景
适合添加索引的场景字段数值有唯一性的限制业务上具有唯一特性的字段,即使是组合字段,也必须建成唯一索引不要以为唯一索引影响了insert的速度,这个速度损耗可以忽略,但提高查询速度是明显的频繁作为where查询条件的字段添加index普通索引经常group by 和order by的列(同时存在使用联合索引,group by 索引放前面,单独就单独创建)更新update,删除delete的where条件列去重字段需要创建索引多表join字段需要创建索引首先join表的
2022-03-10 11:46:38 1950
原创 docker操作Dockerfile构建镜像docker-compose运行多容器
docker一.基本命令选择宝塔你没错1.安装docker可以直接通过宝塔安装或者yum -y install dockerlinux配置yum源2.查看是否安装成功docker --version3.删除容器镜像docker rmi image_id4.搜索镜像docker search mysql5.下载镜像docker pull mysql:5.75.查看容器镜像docker images6.查看运行的容器docker ps// 查看所有运行容器
2022-03-01 12:00:49 2420
原创 linux配置yum源
linux配置yum源1.查看Linux release[root@localhost yum.repos.d]# cat /etc/redhat-release CentOS Linux release 8.5.21112.使用root用户,进入/etc/yum.repos.d/目录cd /etc/yum.repos.d/mkdir back #创建备份文件mv CentOS-* mv back/ #将所有文件启动到back文件夹中3.下载阿里的centos8 yum 源wget -
2022-02-23 16:48:04 495
原创 windows中使用pscp,Linux中使用scp文件上传下载
windows中使用pscp,Linux中使用scp文件上传下载使用dos命令连接服务器上传下载文件到指定目录首先需要下载一个pscp.exe文件 下载地址,放到指定目录C:\Windows\System32将windows上的文件上传到Linux服务器 #端口 ##文件地址pscp -P 22 E:\\xiaoai\\test\\pom.xml root@118.118.116.175:/usr/localpscp -P ww -l root -pw admin E:\\xiao
2022-02-17 15:14:22 903
原创 git版本管理常见操作命令,版本重置reset
git版本管理常见操作命令安装git不用啰嗦,无论win(双击下一步)还是Linux(用yum -y install git)都比较简2git配置信息git config --global user.name "yiran"---设置用户名git config --global user.email "wb-lj462873@cainiao.com" --设置邮箱git config --global --list 查看配置信息生成公钥私钥ssh-keygen -ow
2022-01-19 11:56:57 838
原创 mybaits中的批量执行语句
前言就在刚刚同事突然问我mybaits的xml中批量插入,修改语句怎么写,我一下就蒙了,即使以前写过,但我有忘记了,不知道其他小伙伴是不是也有这种情况,所以我今天特意记录一下 // 批量插入 void batchInsert(@Param("logs") List<Log> logs); // 单个插入 void insert(Log log); // 批量修改 void batchUpdate(@Param("logs") List<
2021-12-25 17:59:43 627
原创 dubbo中涉及到的负载均衡算法
dubbo中负载均衡算法当dubbo中服务的提供者存在多个时,就存在服务的集群,集群中如何分配服务的调用就存在一些算法,选择合适的服务来提供服务。轮询负载均衡算法RoundRobinLoadBalance轮询顾名思义就是按照顺序一个一个来提供服务,假设有三个服务1,2,3,首先执行服务1,然后2,然后3,紧接着服务1直接上代码// 定义一个类似计数器private static AtomicInteger atomicIndexDirect = new AtomicInteger(0
2021-12-23 10:18:30 216
原创 RPC远程调用框架dubbo底层原理,mini-dubbo远程调用实现
RPC远程调用框架今天我们来聊一聊远程调用这个技术点:通俗的讲就是调用远端(另外一台服务器应用上)的方法,当时了解这个RPC的时候是在dubbo这个框架并且自己应用了dubbo,只是会简单的使用,但是并没有搞懂它底层如何如何实现方法的调用的,带着这些疑问自己也一直在不断的学习,有幸在前公司参加过一个网关框架的开发,所以对RPC框架的底层有了深厚的理解,通过自己了解,学习,然后自己实践应用,我自己封装了一套小型的RPC框架,说白了就是dubbo的阉割版,所以我还取名叫做mini-dubbo,我放到了git
2021-12-23 10:02:41 265
原创 关于springmvc中自定义servlet以及约定大于配置,生成约定好的api地址,无需使用注解
前言关于自己写一个自定义的servlet的初衷,首先由于使用springboot写controller接口时需要使用许多的注解例如@GetMapping("/add"),@RequestMapping("/user"),@RequestBody 还需要想很多接口uri,有的时候还遇见接口uri重复,忘记写接口参数的注解`@RequestParam(value = “name”),结合在之前公司使用改造的webx的miniwebx的基础上我重新将它撸了一遍以及改造。github源代码地址特点
2021-12-22 16:13:34 395
原创 mybaits拦截器,拦截器的用途,mybaits一级缓存
1.mybaits拦截器设计初衷为了供用户在某些时候可以实现自己的逻辑而不必去动Mybatis固有的逻辑。通过Mybatis拦截器我们可以拦截某些方法的调用,我们可以选择在这些被拦截的方法执行前后加上某些逻辑,也可以在执行这些被拦截的方法时执行自己的逻辑而不再执行被拦截的方法。核心对象Mybatis核心对象解释SqlSession作为MyBatis工作的主要顶层API,表示和数据库交互的会话,完成必要数据库增删改查功能ExecutorMyBatis执行器,是MyBa
2021-12-17 18:21:29 908
原创 关于mybatis修改语句中设置参数为0时候出现的问题
背景由于小编使用修改语句的时候为了表示该记录是或否禁用使用了0和1来表示使用<if test="disable != null and disable !=''">disable = #{disable},</if>出现问题导致传参时候修改为1的时候没问题,而修改为0时却不起作用,百思不得其解??解决方法将判断语句中的空字符串判断去掉<if test="disable != null">disable = #{disable},</if
2021-05-31 17:36:12 404 1
转载 两数字之和等于目标值求下标之和
给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 的那 两个 整数,并返回它们的数组下标。示例 1:输入:nums = [2,7,11,15], target = 9输出:[0,1]解释:因为 nums[0] + nums[1] == 9 ,返回 [0, 1] 。力扣...
2021-03-23 21:54:16 103
原创 springBoot中实现自定义拦截器
一.什么是拦截器类似于Servlet开发中的过滤器Filter,用于对处理器进行预处理和后处理。依赖于web框架,在实现上基于Java的反射机制,属于面向切面编程(AOP)的一种运用。由于拦截器是基于web框架的调用,因此可以使用Spring的依赖注入(DI)进行一些业务操作,同时一个拦截器实例在一个controller生命周期之内可以多次调用。二.拦截器常应用的场景1)日志记录:记...
2020-03-22 19:42:33 308
原创 手撸一个AOP接口日志
一,AOP是什么?在软件业,AOP为Aspect Oriented Programming的缩写,意为:面向切面编程,通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术。AOP是OOP的延续,是软件开发中的一个热点,也是Spring框架中的一个重要内容,是函数式编程的一种衍生范型。利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性...
2020-03-20 23:35:17 293
原创 实现单例模式
单例模式1.什么是单例模式通俗讲:在创建对象时,有且只有一个对象,给所有对象提供这一实例对象。2.如何实现单例模式首先将构造方法私有化,提供一个对外的静态方法,静态方法则包含单例类的对象。单例模式分为懒汉和饿汉。 public class Single{ private Single(){} private static Single single=new Single(); pu...
2020-03-16 00:03:57 99
原创 单例的实现(在不使用lock和synchronized的情况下)
乐观锁和悲观锁CAS是乐观锁技术,当多个线程尝试使用CAS同时更新同一个变量时,只有其中一个线程能更新变量的值,而其它线程都失败,失败的线程并不会被挂起,而是被告知这次竞争中失败,并可以再次尝试。实现单例的方式如下:private static final AtomicReference INSTANCE = new AtomicReference(); private Singleton...
2020-02-12 15:23:23 131
原创 Java中前置++与后置++的区别?
小编补缺查漏int a=2;int b=a++;System.out.println(“a的值为:”+a);System.out.println(“b的值为:”+b);运算结果:a的值为:3;b的值为:2;结论:程序执行到 int b=a++; 时,先将a的值赋值给b,a再进行+1操作int a=2;int b=++a;System.out.println(“a的值为:”+a)...
2020-02-10 09:51:20 223
原创 String与new String()的区别和==与equals的区别以及拼接的区别?
比较String与new String()的区别String str1="123";String str2=new String("456");String str3=new String("456");这两种声明变量是有区别的1.str1会创建一个对象或者不会创建一个对象,其中出现了一个字符串实例池的概念,实例池中存放许多字符串,当声明的字符串已经存在实例池中,该语句就不会创建对象而...
2020-02-09 14:22:44 889
原创 分布式事务之数据库事务隔离级别
1.MySQL的事务隔离1.1四种隔离级别序列化(SERIALIZABLE)可重复读(REPEATABLE READ)提交读(READ COMMITED)未提交读(READ UNCOMMITED)1.2四种级别的表达含义序列化:表示用户之间的crud是有序的,是一个接着一个的执行的。可重复读:表示当用户操作数据库后另一个用户再操作同一个数据库的时候,产生的结果是一致的(用户之...
2020-02-06 10:25:30 777
原创 关于MySQL索引index的解释
1.为什么使用索引1)能够提高检索的效率2)可以保证(表,列,数据)的唯一性3)可以将无须变为有序4)可以加速表于表之间的联系2.索引这么好为什么不创建一些呢?1)索引创建是需要一定的物理空间的(占磁盘空间)2)对于表的维护比较难,crud的同时,索引也需要维护3.索引是如何提速的?1)就是将无序变有序4.mysql主要实现索引的数据结构?1)哈希表2)B+tree...
2020-02-04 15:55:32 172
原创 关于基本类型int与包装类integer的面试内容
关于基本类型int与包装类Integer的面试内容int与Integer的区别Integer的拓展int与Integer的区别首先Integer是int的包装类,然后int的默认值是0,并且int不能为null,而Integer的默认值为null,即Integer可以区分出为赋值和值为0的区别,例如:区分未参加考试和参加考试的零分。另外Integer提供了多个与整数操作的方法,如将字符串转化为...
2019-10-27 16:10:38 150
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人