自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(74)
  • 收藏
  • 关注

原创 java springboot 执行sql时间远远大于在客户端执行sql的时间,mybatis 执行时间比纯sql时间长,mybatis sql执行时间明显大于Navicat中执行时间

项目框架是spring boot ,mybatis-plus(tk-mybatis)。数据量小,1000条一下的时候没什么问题,但是要测试数据量大之后的接口响应时间,所以程序批量插入了10000条数据,再次通过接口查询数据的时间直接就变成了10秒。感觉这个时间非常的不正常,因为把程序执行的sql文件拿到客户端执行根本没用到那么多时间,为了排查问题,用了很多方法,最后还是找到了问题的原因。具体原因如下mybatis-plus,tk-mybatis在自动分页查询总数的时候,是先把查询数据的sql构建

2020-11-22 21:26:31 39

原创 一个简单接口打开事务和不开事务性能差别,@Transactional注解事务带来的性能损耗

打开事务的后台日志(打上@Transactional注解)2020-10-15 22:40:40.324 DEBUG 5544 --- [nio-8080-exec-3] o.s.web.servlet.DispatcherServlet : POST "/praise", parameters={}2020-10-15 22:40:40.325 DEBUG 5544 --- [nio-8080-exec-3] s.w.s.m.m.a.RequestMappingHandlerMapp

2020-10-16 10:23:09 61

原创 Redisson设置json以及其它序列化方式,连接配置,设置密码访问

配置RedissonClient代码如下@Bean public RedissonClient redissonClient(){ Config conf = new Config(); //单节点模式 SingleServerConfig singleServerConfig = conf.useSingleServer(); String property = environment.getProperty("redisson

2020-10-16 10:11:30 301

原创 mybatis plus insert values后面是空,插入数据报错

mybatis plus的insert方法,如果传递的对象的所有属性都是空(null),框架生成的sql的values后面没有具体的列,所以语句就有问题,无法插入,如果是tkmybatis或者原生的,一样可以插入一个空行,但是plus不行...

2020-10-13 19:49:15 102

原创 docker 创建rabbitmq单实例

docker run -d --name rabbit -p 15672:15672 -p 5672:5672 -e RABBITMQ_DEFAULT_USER=root -e RABBITMQ_DEFAULT_PASS=673185413 rabbitmq:3-management

2020-10-09 09:41:11 13

原创 tk mybatis insert插入数据忽略自增id列的插入

通过调用insertUseGeneratedKeys方法插入数据,会忽略被@id标注的列

2020-10-01 12:21:53 63

原创 docker nginx ssl,配置https协议失败,未报错

如果是这样的话,检查你的nginx是否映射了443端口,我创建nginx容器的时候没有映射443端口,后面配置ssl相关配置,也没报错,始终访问不到,后面才恍然大悟没有配置443端口

2020-09-30 17:19:29 24

原创 redisTemplate 乱码 redis乱码

如果是像这种,那么不是乱码,如果想看到具体的key,不是这种看不懂的符号,那么要使用StringRedisTemplate,而不是redisTemplate

2020-09-30 13:45:08 12

原创 mysql 锁

锁定粒度:表,页,行锁的类型,读,写使用锁的方式,读锁: lock tables user_info read local 或者 lock tables user_info read ,区别是,前者允许其他会话继续向表的末尾插入新的数据,后者是锁表,不允许插入数据写锁lock tables user_info write,dept write 等于锁住了两张表,会阻塞除自己以外所有的读和写请求,解锁了之后,其它程序才能操作解锁方式 unlock tables;...

2020-09-26 17:39:51 7

原创 docker 使用maven容器打包maven ,springboot应用,非pom集成docker插件形式

docker run -it --rm -v maven-repo:/root/.m2 -v "$(pwd)":/usr/src/mymaven -w /usr/src/mymaven my_maven mvn clean package -DskipTests部分命令说明--rm:容器在编译打包maven应用之后自动删除容器 -v :挂载宿主机目录到容器中 maven-repo:这个是事先创建的volume,里面存储的是maven的所有依赖,因为宿主机的maven依赖的文件夹路径太长,使用这.

2020-09-23 11:44:02 17

原创 docker 删除一个镜像下的所有容器 linux命令

如果是只删除已经停止的容器,可以使用下面的命令,将imageName换成想要删除的镜像容器docker rm `docker container ls -a | grep imageName| awk '{print $1}'`如果是删除镜像下所有的的容器,可以使用下面的命令,将imageName换成想要删除的镜像容器docker rm -f `docker container ls -a | grep imageName| awk '{print $1}'`...

2020-09-23 10:48:17 63

原创 docker创建运行mongodb数据库,设置指定用户名密码链接配置

使用的docker命令如下docker run -d -p 27017:27017 --name mongo -e MONGO_INITDB_ROOT_USERNAME=admin -e MONGO_INITDB_ROOT_PASSWORD=673185413 mongo

2020-09-21 16:04:25 63

原创 spring cloud consul 红叉

出现这个问题,项目中需要加入依赖<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> </dependency>

2020-09-15 14:46:52 20

原创 用nginx docker 做反向代理出现502 Bad Gateway

我出现这个问题的原因是,nginx运行在docker里面,所以localhost或者127.0.0.1访问的时候都是访问的docker里面的容器,无法访问到宿主机里面的服务,所以想要在docker里面nginx访问到宿主机的服务,需要查到宿主机的局域网ip地址,比如通过ifconfig查询ip信息,我这里使用了eth0对应的ip地址,192.168开头的地址配置到nginx之后,转发正常,问题解决...

2020-09-04 15:57:21 152

原创 docker 创建elasticsearch命令,单实例,开发环境

docker run -d --name elasticsearch -v /data/elasticsearch5.6.13:/usr/share/elasticsearch/data --net elastic-network -p 9210:9200 -p 9321:9300 -e "ES_JAVA_OPTS=-Xms128m -Xmx128m" -e "discovery.type=single-node" elasticsearch:5.6.13

2020-06-23 22:03:09 88

原创 java接口抽象,业务抽象,功能抽象,抽取功能,方法定义的一点想法

面向接口编程是很好的解耦方式,但是接口的声明要抽象,和具体的业务相剥离,否则接口名称和参数太过具体就无法达到很好的通用性例如在写一个html转换为word文件的功能,或者word转换为html的功能,首先声明接口,如果接口的名称命名为 wordToHtml,或者htmlToWord,那么接口名称就过于具体这项业务再网上抽象就是转换,所以,顶层接口应该声明为transform,而word转h...

2020-03-31 15:34:12 173

原创 hive version for the right syntax to use near '-local.`SEQUENCE_TABLE`

hive安装配置完成之后,启动hive报错,我这里出现这个错误的原因是因为配置的jdbc的url链接的数据库名称包含了“-”,最后将数据库名称的“-”改为“_”,修改了该错误...

2020-01-02 10:11:24 59

原创 spark java.lang.AbstractMethodError:xxx$1.call(Ljava/lang/Object;)Ljava/util/I

spark submit 运行程序报错,最后找到原因是版本不兼容首先spark软件版本要一致,其次是maven的spark版本要和软件版本对应版本都合上之后问题解决...

2019-12-29 20:54:25 100

原创 spark windows java 本地开发环境搭建

需要三步安装java本地环境(此步省略) 下载spark软件包 配置spark环境直接第2步开始,下载地址是http://spark.apache.org/downloads.htmlhttps://www.apache.org/dyn/closer.lua/spark/spark-2.4.4/spark-2.4.4-bin-hadoop2....

2019-12-29 11:18:07 102

转载 hive启动报错:system:java.io.tmpdir等

hive启动报错:system:java.io.tmpdir等解决方法:在hive-site.xml中添加<property> <name>system:java.io.tmpdir</name> <value>/home/root/hdp/tmpdir</value></property>...

2019-12-18 10:24:35 66

原创 idea 关闭当前tab 关闭tab tab

关闭当前焦点所在的tab,可以在这里设置快捷键 file->setting->keymap这项设置就是快捷设置

2019-11-18 14:02:24 391

原创 docker nginx 指定配置文件夹 Are you trying to mount a directory onto a file (or vice-versa

出现上面这个错事因为你将文件夹或者文件挂载到了docker的文件或者文件夹上,需要文件夹和文件夹对应,文件和文件对应,虽然这个可能大家都知道,但是你要检查一下你是不是真的出现了这个问题我出现这个问题就是想把主机中的conf.d文件夹挂载到docker nginx镜像中的nginx.conf中,其实应该挂载到镜像的/etc/nginx/conf.d中...

2019-11-15 23:06:25 801

原创 redis 主从环境,读写分离配置

修改master文件:redis.conf:配置文件的其他部分不要改动,修改如下内容:port 6379 pidfile /var/run/redis_6379.pid # slaveof <masterip> <masterport> logfile "/data/logs/redis.master.log" daemonize yes修改sla...

2019-11-11 14:47:39 34

原创 linux从git拉取代码通过maven构建打包并kill已有的进程和发布java项目脚本

if [ -n "$1" ] ;then echo "the word you input is $1"else echo "请输入要发布的git分支,例如: sh develop_project.sh dev" exitficd /home/cube/workspace/java_project/spap_cardsgit checkou...

2019-11-08 17:43:08 511

原创 Git 代码分支管理

目的: 为了让每个人实现需求产生的代码不和其他人还未发布或者正在实现需求所产生的代码不产生冲突 灵活的上线某个需求,可以测试和上线任何小的或者独立的业务需求 避免多个需求在同一个分支当中,突然要上线其中某一个需求,因为代码耦合而无法独立上线某个需求相关的代码的情况 提高线上(生产环境)代码安全性 固定分支和功能 master/prod(生产环境) 固定且受保护分支,此...

2019-11-08 17:40:16 196

原创 elastaticsearch 安装 启动 外网访问不到遇到的问题

安装的5.4.0linux版,安装启动没有修改配置,服务器上可以访问,外网访问不到,第一步需要修改配置elasticsearch-5.4.0/config/elasticsearch.yml 中的network.host: 0.0.0.0第二个参数为discovery.zen.ping.unicast.hosts: ["ip地址"]还有的一些错误可以百度了,基本上是修改文件的权限和...

2019-10-28 17:40:16 135

转载 Spring Cloud微服务架构的构建:分布式配置中心(加密解密功能)

前言要会用,首先要了解。图懒得画,借鉴网上大牛的图吧,springcloud组建架构如图:微服务架构的应用场景: 1、系统拆分,多个子系统 2、每个子系统可部署多个应用,应用之间负载均衡实现 3、需要一个服务注册中心,所有的服务都在注册中心注册,负载均衡也是通过在注册中心注册的服务来使用一定策略来实现。 4、所有的客户端都通过同一...

2019-10-23 11:34:33 81

转载 事务的四种隔离级别(转)

数据库事务的隔离级别有4种,由低到高分别为Read uncommitted 、Read committed 、Repeatable read 、Serializable 。而且,在事务的并发操作中可能会出现脏读,不可重复读,幻读。下面通过事例一一阐述它们的概念与联系。Read uncommitted读未提交,顾名思义,就是一个事务可以读取另一个未提交事务的数据。事例:老板要给程序员发工...

2019-09-19 14:21:12 35

原创 Srping boot ConfigurationProperties 添加 list 元素配置

java代码application.yml配置需要注意的就是在属性的后面直接回车,比属性要多出两个空格然后加“-”然后加一个空格接上元素就可以了,添加其它元素的时候再回车,格式和刚才一样就可以了...

2019-08-30 17:42:48 292

原创 win10 下安装docker,创建镜像,push镜像到私有仓库,创建私有仓库,修改镜像仓库地址

通过连接下载windowdocker安装文件,https://download.docker.com/win/stable/Docker%20for%20Windows%20Installer.exe安装完成之后,修改镜像仓库地址linux安装私有仓库docker run -d -p 5000:5000 --restart always --name regis...

2019-07-17 16:58:43 1059

转载 RocketMQ-记RocketMQ启动后producer无法连接到broker的错误及解决方案

背景最近在学习RocketMQ,第一步就是安装部署并启动RocketMQ.使用最新版本的RocketMQ,版本为4.2.0,安装后启动相关服务.启动nameServer:nohup mqnamesrv &1由于broker和nameServer在同一台机器上,启动broker:nohup mqbroker -n localhost:9876 &1接下来运行pr...

2019-05-12 09:35:03 1238

原创 连接局域网主机里面的虚拟机,ping不到局域网主机里面的虚拟机

虚拟机的网络连接模式里面选择“桥接”模式就可以了

2019-04-25 16:10:20 390

原创 mybatis pagehelper 分页方式,没有使用pagehelper任然分页,添加了limit

pagehelper使用的方式最常见的就是使用PageHelper.startPage()有的时候就算你没有在mapper上面的代码使用这一句,但是生成的sql语句中还是有limit元素我也是找了一下午才找到,原来,mapper的方法中的参数,如果带有pageNum和pageSize属性,mybatis还是会对查询的结果进行分页,也就是在sql语句的末尾加上limit,所以,page...

2019-02-28 17:56:25 3328 4

原创 java多线程情况下,while和if的区别

在多线程情况下,如果一个线程进入了if语句块中,在if语句块中执行了wait方法,该线程处于等待(wait)状态,如果该线程被唤醒(notify),不管if的条件是否发生了变化,该线程会执行wait之后的代码,并且会跳出if语句块执行if语句块外面的代码 如果是while,被唤醒了之后,会继续执行wait方法之后的代码,代码块里面的代码执行完了会继续判断条件,如果为true,会继续执行wh...

2019-02-21 10:58:00 1483 1

原创 java.lang.IllegalMonitorStateException的解决方法

java.lang.IllegalMonitorStateException是在调用object的wait和notify,notifyAll方法的时候可能会出现的异常 在调用上述三个方法的时候,线程必须获得该对象的对象级别锁,换句话说,出现这个异常的原因是因为,调用wait和notify,notifyAll的对象没有在同步方法(synchronized修饰的方法)或者同步代码块(synch...

2019-02-21 10:42:37 4554 1

原创 微信公众号上传永久图片素材

使用curl命令 curl "https://api.weixin.qq.com/cgi-bin/material/add_material?access_token=ACCESS_TOKEN&amp;type=image" -F media=@icon.png -F  description='{"title":"测试图片", "introduction":"测试上传永久图片素材"}'..

2019-02-14 17:09:06 1600 2

原创 errcode":40001,"errmsg":"invalid credential, access_token is invalid or not latest hint

微信access_token 在一个地方获取了,同一个公众号其它地方获取的access_token 都会失效,就会出现标题中的错误 这个原因可能大家都知道,但是排除的时候可能不好排除 我找了一上午在系统里面,都没有找到,因为自己负责的系统全都在一个地方定时获取access_token ,都在去同一个地方获取,不再是所有地方请求微信获取 然而今天又出现这个问题,是因为公司里面...

2019-01-30 17:02:50 3674

原创 mysql Using join buffer (Block Nested Loop) join连接查询优化

最近在优化链表查询的时候发现就算链接的表里面不到1w的数据链接查询也需要10多秒,这个速度简直不能忍受通过EXPLAIN发现,extra中有数据是Using join buffer (Block Nested Loop),而其它关联的表都是Using index,最后使用排除法发现当extra为Using join buffer (Block Nested Loop)是最慢的,就算加了索...

2019-01-11 16:04:50 24311 3

原创 微信accessToken不稳定,invalid credential, access_token is invalid or not latest hint, 时好时坏

刚获取到的accessToken可以使用,过几分钟就不能使用了,或者报错说accessToken过期了,但是不停的重试该accessToken又有几次可以成功,以为是微信的问题,最后才发现 导致这个问题很可能是项目是协同开发,很多人在开发和微信相关的功能时,都使用了同一个公众号的信息去获取了accessToken,谁最后获取的accessToken,谁的accessToken有效,之前获取...

2019-01-03 14:51:28 1870

原创 java 时间格式化 上午下午 am pm,本地windows显示的格式和linux服务器显示格式,风格不一致问题

本地开发的时候,如果是windows系统,默认为中文环境,所以格式化日期的时候或者其他和语言系统有关系的时候默认就为当前系统的语言环境(中文),在linux服务器上,语言环境很有可能不是中文,如果需要显示对应的语言,需要指定语言环境,或者说指定区域 比如时间格式化 SimpleDateFormat sdf = new SimpleDateFormat(format);Date...

2018-12-24 17:43:24 2747

空空如也

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人 TA的粉丝

提示
确定要删除当前文章?
取消 删除