Java
Mym_zuoyan_Tmac
早起的虫儿被鸟吃。
展开
-
Mybatis与JDBC批量插入MySQL数据库性能测试及解决方案
Mybatis与JDBC批量插入MySQL数据库性能测试及解决方案原创 2023-01-18 10:01:24 · 1666 阅读 · 0 评论 -
Mysql根据出生日期计算年龄
简单粗暴,直接上sqlSELECT DATE_FORMAT(FROM_DAYS(TO_DAYS(NOW())-TO_DAYS(u.birthday)), '%Y')+0 AS age完事~~原创 2022-02-27 20:43:35 · 2697 阅读 · 0 评论 -
Mysql数据库地区表 递归查询 省市区
直接上sql,简单粗暴!!SELECT t1.area_name AS '省', t2.area_name AS '市', t3.area_name AS '区' FROM ( SELECT * FROM base_area_new WHERE area_type = 1 AND version = 2 AND data_status = 1 ) AS t1 INNER JOIN ( SELECT * FROM base_area_new WHERE area_type = 2 AND ver原创 2022-02-27 20:03:30 · 3121 阅读 · 0 评论 -
通过sql实现传入父级id查询出所有的子集
通过sql实现传入父级id查询出所有的子集SELECT t3.* FROM ( SELECT t1.*, t2.*, IF(FIND_IN_SET(parent_id, @pids) > 0, @pids := CONCAT(@pids, ',', id), '0') AS isChild FROM ( SELECT * FROM rule_enti原创 2021-12-31 14:15:19 · 1185 阅读 · 0 评论 -
docker logs 查看docker容器日志详解
docker logs 查看docker容器日志详解通过docker logs命令可以查看容器的日志。命令格式:$ docker logs [OPTIONS] CONTAINER Options: --details 显示更多的信息 -f, --follow 跟踪实时日志 --since string 显示自某个timestamp之后的日志,或相对时间,如42m(即42分钟) --tail string原创 2021-12-17 13:15:26 · 912 阅读 · 1 评论 -
MyBatis 批量插入几千条数据,请慎用Foreach
MyBatis 批量插入几千条数据,请慎用Foreach近日,项目中有一个耗时较长的Job存在CPU占用过高的问题,经排查发现,主要时间消耗在往MyBatis中批量插入数据。mapper configuration是用foreach循环做的,差不多是这样。(由于项目保密,以下代码均为自己手写的demo代码)<insert id="batchInsert" parameterType="java.util.List"> insert into USER (id, name) valu原创 2021-12-17 11:12:33 · 176 阅读 · 0 评论 -
域名跨域问题处理
server { listen 443 ssl; server_name testlaberpbac.shenhanhealth.com; client_max_body_size 500M; ssl_certificate /ssl/4016712__shenhanhealth.com.pem; ssl_certificate_key .原创 2021-12-16 12:50:00 · 153 阅读 · 0 评论 -
Linux基础命令
Linux基础命令查看操作系统版本:lsb_release -a如果 -bash: lsb_release: 未找到命令yum install -y redhat-lsblinux开放指定端口命令1、开启防火墙 systemctl start firewalld2、开放指定端口firewall-cmd --zone=public --add-port=1935/tcp --permanent命令含义:--zone #作用域--add-port=1935/tcp原创 2021-12-10 13:53:09 · 78 阅读 · 0 评论 -
52条SQL语句,性能优化
52条SQL语句,性能优化,干货必收藏本文会提到 52 条 SQL 语句性能优化策略。1、对查询进行优化,应尽量避免全表扫描,首先应考虑在 WHERE 及 ORDER BY 涉及的列上建立索引。2、应尽量避免在 WHERE 子句中对字段进行 NULL 值判断,创建表时 NULL 是默认值,但大多数时候应该使用 NOT NULL,或者使用一个特殊的值,如 0,-1 作为默认值。3、应尽量避免在 WHERE 子句中使用 != 或 <> 操作符。MySQL 只有对以下操作符才使用索引:<原创 2021-11-02 09:59:14 · 86 阅读 · 0 评论 -
Jenkins自动化部署实战
一、docker安装jenkins1、docker拉取镜像docker pull jenkins/jenkins:lts2、新建文件夹mkdir -p /mydata/jenkins_home3、运行镜像docker run -di --name=jenkins -p 8080:8080 -v /mydata/jenkins_home/:/var/jenkins_home jenkins/jenkins:lts4、如果没有启动成功,给对应目录加权限chown -R 1000 /myd原创 2021-08-25 23:00:52 · 94 阅读 · 0 评论 -
Nacos和Eureka的区别
1、ACP原则nacos支持AP(可用性 | 分区容错性) 和 CP(一致性 | 分区容错性)两种eureka只支持 AP (可用性 | 分区容错性)什么是P(分区容错性)?2、配置中心nacos有自己的配置中心,提供管理界面eureka需要配合config实现配置中心,且不提供管理界面3、连接方式nacos支持动态刷新,在控制器(controller)上加 @RefreshScope 注解即可,采用Netty连接,是长连接eureka本身不支持动态刷新,需要配合MQ完成动态原创 2021-07-21 09:10:51 · 6253 阅读 · 0 评论 -
MyCat笔记
MyCat1、分库分表2、读写分离原理:需要搭建数据库主从模式,让主数据库(master)负责处理增、删、改 事务性操作,让从数据库(slave)负责处理查询操作。mycat配合数据库本身的复制功能,可以解决读写分离的问题。...原创 2021-07-20 15:15:25 · 74 阅读 · 0 评论 -
String、StringBuffer、StringBuilder的区别
StringString的值是不可变的,所以每次对String进行操作的时候,都会创建新的对象。当对字符串进行修改的时候,需要使用stringbuffer和stringbuilder与string(不可变字符串)相比,stringbuffer和stringbuilder类的对象可以被多次修改,并不会产生新的未使用的对象。三者继承结构三者的区别1、字符上string不可变字符串;stringBuffer 可变字符串,线程安全,执行效率低;stringBuilder 可变字符序列,线程不原创 2021-06-29 16:39:00 · 62 阅读 · 0 评论 -
线程学习1.1
1.1 线程相关概念进程 进程(Process)是正在操作系统中运行的一个程序线程 线程(Thread)是进程的一个执行单元,或者理解为进程的一个执行分支进程是线程的容器,一个进程至少有一个线程最终实现:cmpxchg = cas 修改变量值lock cmpxchg 指令 (cmpxchg是非原子性的,但加了lock,就代表在cas修改变量值过程中,不允许其他线程访问,保证了原子性)...原创 2021-06-26 15:47:01 · 58 阅读 · 0 评论 -
Synchronized和lock的区别
Synchronized和Lock的区别1、synchronized的实现原理Java中的每一个对象都可以作为锁,这是synchronized的实现基础;普通同步方法,锁的是当前对象;静态同步方法,锁的是当前类的class对象;同步代码块,锁的是括号里面的对象。2、具体区别1、synchronized是java的一个关键字,在jvm层面上,而lock是一个接口;2、synchronized在发生异常时会自动释放当前占有的锁,因此不会出现死锁;而Lock发生异常的时候,不会主动释放原创 2021-06-21 22:23:08 · 52 阅读 · 0 评论 -
MongoDB基本介绍和实际应用场景
MongoDB1. 简介MongoDB是开源的、无模式、分布式的非关系性文档型数据库,是NoSql的一种,类似的还有Redis、HBase等。它支持的数据结构比较松散,是一种类似于JSON的BSON格式,实际上是二进制的JSON。2. 适用场景1、数据量存储达到TB,甚至PB级别的海量数据时;2、数据库需要承载高并发读写需求时;3、对数据库有高扩展性和高可用性的需求时。这些应用场景的共同特点是:1、数据量大2、写入操作频繁3、价值较低的数据,对事务性要求不高这里回顾下事务的四大原创 2021-06-20 22:26:22 · 337 阅读 · 0 评论 -
设计模式-单例模式(创建型模式)
单例模式饿汉式package com.design.single;/** * @author MYM_ZUOYAN * @version 2.0 * @date 2021/6/19 9:56 * 单列模式-饿汉式 * * 饿汉式特点:一上来就把所有的资源加载,会浪费空间 */public class Hungry { //可能会浪费空间 private byte[] data1 = new byte[1024 * 1024]; private byte[]原创 2021-06-19 15:11:25 · 61 阅读 · 0 评论 -
23种设计模式-概述
原创 2021-06-19 09:43:54 · 94 阅读 · 0 评论 -
Volatile的作用
volatile1. volatile的作用保证某一值 x 的值在更新后,每个线程所取到的 x 的值都是最新的。volatile保证了可见性、有序性,但不能保证原子性。2. volatile和synchronized区别1、volatile是轻量级,只能修饰变量。synchronized是重量级,还可修饰方法2、volatile只能保证数据的可见性、有序性,不能用来同步,因为多个线程并发访问volatile修饰的变量不会发生阻塞,synchronized既保证了可见性、还可保证原子性,因原创 2021-06-18 15:21:22 · 314 阅读 · 0 评论 -
JVM之Native、方法区、栈、堆
Native栈栈:先进后出,后进先出,类似桶队列:先进先出原创 2021-05-19 22:42:56 · 110 阅读 · 0 评论 -
JVM的体系架构
1、JVM与操作系统、硬件体系关系图2、JVM结构体系类加载器作用:加载Class文件双亲委派机制:安全先从最内层的包开始找一直找到根(ROOT)然后执行根也就是类加载器收到类加载的请求将这个请求一直向上委托给父类加载器去完成,直到启动类加载器启动类加载器检查是否能加载这个类,能加载就结束,使用当前的加载器,否则抛出异常(Class Not Found),通知子加载器进行加载重复步骤3...原创 2021-05-18 22:58:30 · 54 阅读 · 0 评论 -
JVM的学习方式
JVM探究我们目前学习的虚拟机是HotSpot原创 2021-05-18 22:04:10 · 55 阅读 · 0 评论 -
git 提交代码问题
遇到 Push to origin/master was rejected 提交问题用这个命令一键解决:git push -u origin master -f原创 2021-05-16 22:32:46 · 63 阅读 · 0 评论 -
lunix后台启动seata
# 1. 进入seata的bin目录下(这里是我的) cd /home/seata/seata/bin # 2. 后台启动命令(seata0.7版本后) nohup ./seata-server.sh -p 8091 -h 127.0.0.1 -m file >nohup.out 2>1 &就这么简单!!原创 2021-05-03 10:00:44 · 1077 阅读 · 0 评论 -
Linux配置Nginx+FastDFS+通过Http或Https访问文件
1. 下载四个压缩包wget https://github.com/happyfish100/libfastcommon/archive/V1.0.7.tar.gzwget http://jaist.dl.sourceforge.net/project/fastdfs/FastDFS%20Nginx%20Module%20Source%20Code/fastdfs-nginx-module_v1.16.tar.gzwget https://github.com/happyfish100/fastdf原创 2021-04-24 14:45:51 · 571 阅读 · 0 评论 -
汇编语言之二进制(原码、反码、补码)
原码反码补码的关系二进制位运算与运算(and &)两个都为1,则为11 0 0 1 1 0 1 01 1 0 0 0 1 1 0------------------1 0 0 0 0 0 1 0或运算(or | )一个为1,则为11 0 0 1 1 0 1 01 1 0 0 0 1 1 0------------------1 1 0 1 1 1 1 0异或运算(xor ^)不一样就是11 0 0 1 1 0 1 01原创 2021-04-22 22:59:14 · 1644 阅读 · 0 评论 -
docker-compose下载与安装
下载curl -L https://get.daocloud.io/docker/compose/releases/download/1.25.5/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose授权sudo chmod +x /usr/local/bin/docker-compose查看版本cd /usr/local/bindocker-compose version..原创 2021-04-14 13:32:34 · 455 阅读 · 0 评论 -
Java后台根据地理位置获取经纬度信息(百度地图)
1. 引入依赖包<!-- 引入HttpClient依赖 --><dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>httpclient</artifactId> <version>4.5.3</version></dependency>2. 在yml中配置百度地图AK和地理编码原创 2021-04-09 16:43:21 · 2500 阅读 · 2 评论 -
Linux 监听微服务Jar包宕机后自动重启脚本
1. 编写脚本在jar目录下创建脚本,例如:sys.shwhile : do run=$(ps -ef |grep "Kenner-service-sys-1.0-SNAPSHOT-exec.jar" |grep -v "grep") if [ "$run" ] ; then echo "The service is alive!" else echo "The service was shutdown!" echo "Starting service ..." nohup java原创 2021-04-07 11:26:31 · 1339 阅读 · 2 评论 -
canal caching_sha2_password Auth failed
环境版本:canal:1.1.5mysql:Server version: 8.0.19 Homebrew启动canal服务sh bin/startup.sh报错花了一上午的时间终于找到原因:因为本人使用mysql版本为8.0,而创建用户时默认的密码加密方式为caching_sha2_password,所以修改为mysql_native_password 就行首先找到conf/example/instance.properties文件中canal.instance.dbUsern.原创 2021-03-26 08:55:00 · 528 阅读 · 0 评论 -
用Navicat查看MySql安装路径(Windows与linux通用)
在Navicat中执行命令:show VARIABLES like '%char%';就这么简单!原创 2021-03-25 10:37:53 · 1371 阅读 · 0 评论 -
springcloud多环境配置
springcloud分布式配置中心原创 2021-03-15 23:07:45 · 66 阅读 · 0 评论 -
服务注册中心:Eureka与Zookeeper对比
原创 2021-03-13 14:02:07 · 57 阅读 · 0 评论 -
SpringCloud学习笔记
SpringCloud与Dubbo对比springcloud学习文档网站数据库函数:DATABASE(), 意思指获取本数据名原创 2021-03-05 17:43:44 · 41 阅读 · 0 评论 -
GIT分支说明
GIT分支说明# 列出所有本地分支git branch# 列出所有远程分支git branch -r# 新建一个分支,但依然停留在当前分支git branch [branch-name]# 新建一个分支,并切换至该分支git checkout -b [branch]# 合并指定分支到当前分支git merge [branch]# 删除分支git branch -d [branch-name]# 删除远程分支git push origin --delete [bran原创 2021-03-02 09:43:10 · 53 阅读 · 0 评论 -
Git配置SSH公钥及创建远程仓库
Git配置SSH公钥及创建远程仓库原创 2021-03-01 23:16:28 · 119 阅读 · 0 评论 -
Git基本理论(核心)
Git基本理论(核心)构建一个git项目创建本地仓库的方法有两种:一种是创建全新的仓库,另一种是克隆远程仓库原创 2021-03-01 22:53:55 · 84 阅读 · 0 评论 -
Git与SVN的区别
Git与SVN的区别svn集中版本控制git分布式版本控制优势:先提交本地,再提交到线上,不会因为网络或服务器损坏造成不能工作的情况!劣势:每个人都拥有全部代码,有安全隐患Git是目前世界上最先进的分布式版本控制系统。git可以直接看到更新了哪些代码和文件淘宝镜像地址: http://npm.taobao.org/mirrors/git-for-windows/查看Git配置git config -l查看系统配置: git config --sy原创 2021-03-01 22:14:43 · 97 阅读 · 0 评论 -
UDP通信
UDP通信发送端发送消息package com.zuoyan.lesson03;import java.net.DatagramPacket;import java.net.DatagramSocket;import java.net.InetAddress;/** * UDP通信发送端 * 不需要建立服务器 */public class UdpClientDemo { public static void main(String[] args) throws Except原创 2021-03-01 17:40:40 · 103 阅读 · 0 评论 -
TCP-文件上传
TCP-文件上传客户端package com.zuoyan.lesson02;import java.io.*;import java.net.Socket;/** * 客户端上传文件 */public class ClientDemo02 { public static void main(String[] args) throws IOException { //1. 连接服务端 Socket socket = new Socket("127原创 2021-03-01 17:10:52 · 46 阅读 · 0 评论