自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Java 把一个int数字转换成特定位数二进制的字符串

首先明确一点,我想要的结果是这个数字经过进制转换得到一个二进制数组,且最长不超过n位。这里的n是可以调的,下面给出n=8时的例子。public static String binaryString(int num) { StringBuilder result = new StringBuilder(); int flag = 1 << 7; for (int i = 0; i < 8; i++) { int val = (flag &a.

2021-01-12 17:29:18 1670

原创 ORACLE如果某字段没有某值就插入,否则不操作

这个语句的意思是当table表的RULE_CODE有01的时候不操作,没有的话就插入INSERT INTO table(ID, RULE_CODE, RULE_NAME)SELECT 'testInstert', '01', 'advertising'FROM dualWHERE not exists (select * from tablewhere RULE_CODE = '01');...

2020-09-24 16:40:53 1171

原创 Git提交忽略request.js

这种方式可以保证远程库和本地库都有文件,但是本地库如何修改都不会被提交。git update-index --assume-unchanged abc/aaa/request.js

2020-07-02 16:51:34 317 1

原创 (手撸)SringBoot统一返回格式的接口数据封装成excel表格并且输出流下载

package com.lalala.ami.common;import com.alibaba.fastjson.JSONArray;import com.alibaba.fastjson.JSONObject;import com.doreen.core.annotation.Api;import com.doreen.core.annotation.Item;import com.doreen.core.annotation.JSON;import com.doreen.core.ao.

2020-06-22 18:05:29 244

原创 SpringCloud的Feign接口正确开发姿势

微服务中,直接在各模块之间暴露的接口上标注@FeignClient是不合规范的。像这样。应该是不被允许的。正确使用姿势是,各模块暴露的接口应该是纯粹的public interface RpcService { @GetMapping("hello") String hello();}而我们在使用的时候要搞一个接口去继承这个接口,在子接口上标注@FeignClie...

2020-04-02 14:28:42 1299 1

原创 Mysql的联合索引最左匹配原则小记

mysql的联合索引,也称为组合索引,指的是建立一个索引的时候选择多个字段。可能我们都听说过联合索引的最左匹配原则,今天我们就这个主题实战讨论一下。使用工具:navicat。创建表:我不喜欢上传建表语句,那样不直观。创建联合索引,ok,准备工作完成,让我们以各种查询姿势来观察下对应的查询计划。1select * 系列 select * 系列需要回表操作...

2020-03-25 09:49:36 248

原创 maven打包命令—P,指定springboot项目的配置文件

适用于jekins配置打包环境。线下我们使用的dev环境,线上,测试环境就有不同的配置文件了。只需要在jekins的打包命令加入-P prod,就可以了。prod对应相应的环境。但是还需要在maven的配置文件<project>节点里面加入<profiles> <!-- 开发 --> <profile> <!-...

2020-03-13 13:04:16 3934 1

原创 Windows上模拟MySQL主从设置,读写分离

对于互联网架构来说,MySQL读写分离是很重要的。所以今天我决定在我自己的电脑上模拟下。我一开始本以为可以用一个MySQL服务,建立两个数据库来模拟。但是网上的教程都是修改MySQL的配置文件,所以我只好另外又安装了个MySQL。为了避免不必要的麻烦,我们尽量保证MySQL版本一致。我第一个MySQL是msi安装包安装的,在网上我下载的第二个MySQL是压缩包形式的。所以,我们从配置这种解...

2020-03-06 16:16:18 217 1

原创 Mysql的隐式类型转换

注意,数字类型的索引,查询时可以加双引号,也可以不加,都会使用索引但是字符类型的索引,查询时必须加双引号,否则不会使用到索引所以,尽量不要发生类型隐式转换。...

2019-12-04 13:51:15 147

原创 Mysql查询记录加上固定长度的编号,right函数和concat函数的结合使用。

现在有这么个需求,mysql里面有了已经排序好的编号,1,2,3,4,5.....1100,不超过6位数。我需要做的是把这些编号变成固定长度的形式。比如11号,变成固定长度为6,就是前面填充4个0————000011;以前我都是用程序代码自己写的,不但效率低,还费脑子,需要判断长度,再去决定前面填充几个0.后来接触到mysql的right(x,y)函数,接收两个参数x和y。意思是返回查...

2019-11-28 14:56:05 612

原创 SpringBoot写入Redis数据库Hash类型数据并且设置过期时间

Java对于Redis的封装不是能满足所有的业务需求的,但是我们可以通过lua脚本来直接向Redis发送命令。下面这两句话,可以实现向Redis插入Hash数据,并且设置整个Hash的过期时间。putIfAbsent是set NX的意思,指的是如果没有才插入。redisTemplate是自动装配的StringRedisTemplate对象boolean a = redisTemplat...

2019-11-22 14:22:32 8046 7

原创 Docker学习笔记2,创建Nginx容器并且实现反向代理和负载均衡配置

首先还是 docker pull nginx然后根据刚刚pull下来的image创建容器,docker run -p 8800:80 --name mynginx -d nginx然后使用docker ps查看有木有这个容器(可能会看到you can get programm blabla.core,blabla.full什么的,笔者也没管,不知道做了操作了什么就好了。。。也许是没下载完把...

2019-11-01 16:43:50 279

原创 Docker学习笔记1,Docker创建Tomcat容器并且部署web项目。

使用docker部署俩tomcat,模拟负载均衡。1.首先去这个网站查看你需要下载的版本对应的标签https://hub.docker.com/u/library2.然后docker pull tomcat:你的标签。当然,不加标签的话一般默认使用最新版即lasted3.拉下来镜像之后,我们根据这个镜像创建并且启动两个容器。为了方便后续的操作,我们为这两个容器起名字。docker ru...

2019-10-31 19:30:33 364

原创 java关键字synchronized的内存可见性

以前保证内存可见性都是使用volatile关键字,下面代码的执行结果,让我猜到了synchronized关键字可能会刷新线程的工作内存。原来synchronized关键字也可以保证变量的内存可见性。因为,1、线程解锁前,必须把共享变量的最新值刷新到主内存中;2、线程加锁时,清空工作内存中共享变量的值,从而使共享变量是从主内存中重新读取最新的值(加锁与解锁需要统一把锁)线程执行互斥...

2019-10-30 14:16:55 252

原创 借助java的LinkedList实现插入排序

List<Integer> a=new ArrayList();a.add(1);a.add(2);a.add(7);a.add(7);a.add(0);a.add(3);a.add(4);a.add(212);List<Integer> sortedList=new LinkedList();a.forEach(sortNum ->{ ...

2019-09-02 16:12:39 1121

原创 记一次mysql死锁问题

这是我第一次遇到mysql死锁问题,通过这次死锁问题的分析,我对数据库的锁和有了更详细的认识。漫漫长路,一点点走。这是我的demo复现,出现的原因是在事务里面循环更新数据,注意,此时我的mysql默认事务隔离级别是提交读,且name和sex添加了组合索引。public void test() { User user = new User("a", "a", "aa"); ...

2019-08-30 14:26:59 219

原创 java的String.intern()方法小记

在jdk1.7及以后(外加其他的非hotspot虚拟机),String的intern()方法不再是把堆上面的字符串复制到字符串常量池中,并返回常量池里面此字符串的引用了。取而代之的是,inten()方法会在字符串常量池中记录首次出现的实例引用。 什么意思呢?假如说,有这样一段代码String str2 = new StringBuilder("计算机").append("软...

2019-06-15 15:41:11 356

原创 Mongo2.6.10使用robo3t1.3版本不行的

把robo3t换成1.2

2019-05-27 19:03:39 547

原创 Git解决每次push和pull都需要输入用户名密码

gitBash里输入命令git config --global credential.helper store然后下次再pull或者push,还需要再输入一次用户名密码。但以后就不用输入了。

2019-03-07 16:39:59 647

原创 java实现根据前端的某个关键字进行线程控制

我的项目中,有个需求:          前端请求不能同时处理某一条数据。怎么实现呢?我的方法是,把数据里面的id当成锁,实现线程控制。可是,前端传入的对象在我们的虚拟机里都是新的对象,就算id值相同,也是两个对象啊,这样的锁,锁的住吗?机智的我,想到了字符串常量池。别忘了。字符串常量池不会存储两个相同值的对象的。那么问题来了,怎么把id当成字符串,再从堆里转移到字符串...

2019-02-18 15:53:17 166

原创 mongoTemplate或条件查询

不能这么写:query.addCriteria(Criteria.where("aaa").is("aaaa").orOperator(Criteria.where("bbb").is("bbb")));只能这么写Criteria criteria = new Criteria();criteria.orOperator(Criteria.where("aaa").is("aaa.

2019-01-22 18:56:03 2664

原创 Lambda表达式写的List foreach循环是单线程处理还是多线程处理?

自从有了jdk8,我的foreach循环从原来的for(String s:list){System.out.println(s);}潇洒的变成了list.stream.foreach((s) -&gt;{System.out.println(s);});或者更风流的list.forEach(System.out::println);那么问题来了,jav...

2019-01-21 10:36:22 19547

原创 java服务器解密微信小程序

网上的大部分代码都很坑啊!  真不知道他们怎么解密出来的。 不是BadPading ....Exception就是解密出来的数据是空的或者是一大串看不懂的玩意儿。推荐一个代码,亲测可用,没亲测天打雷劈。  感谢!原文链接:https://yangguangftlp.iteye.com/blog/2339087代码我也不知道啥意思,白问我。运行截图为证!:...

2019-01-18 15:41:35 197

原创 mongotemplate查询的value有int,有String,怎么办?

有时候,前端和手机端给你的数据看起来一样,可是有时候某些字段的value却类型不相同。比如,id有传int,有传String。我们使用mongotemplate根据这个字段查询时候,总不能每次都写两个查询条件,一个(“key”).is(100)和一个("key").is("100")吧?想忽略类型直接查询value符合条件的记录,怎嘛办呢,老舔爷?       ...

2019-01-17 19:45:40 844 2

转载 mongotemplate查询返回指定字段

BasicQuery查询语句可以指定返回字段           Query query=new   BasicQuery(DBObject queryObject, DBObject fieldsObject)            fieldsObject 这个字段可以指定返回字段            fieldsObject.put(key,value)          ...

2019-01-17 19:21:59 6581

原创 mongotemplate判断文档中的数组是否含有特定的值

应用场景:我们数据库的的文档里面含有数组,而我的查询条件有根据数组里面某个key的值查询怎么办?比如我有三个json文档:{“name”:"MAZHIGANG","array":[{"key1":"val1",             "key2":"val2" }]}{“name”:"MAZHIGANG","array"

2019-01-13 22:18:29 6456 5

原创 MongoTemplate使用$set根据文档自动更新值,不删除文档里面没有的key

mongotemplate.updateFirst(query,Update.fromDocument(document,"$set"),"yourcollectionName");这种写法会使数据库的查询到的文档更新为document,即把数据库集合更新为与document一毛一样,也就是说,这种写法会删除数据库文档里,documet里面没有写的值。可我们总是希望前端只给我们需要更新的j...

2019-01-03 12:13:06 2235

转载 付款码的一码多用思路

        首先感谢强大的知乎,参考文章:        https://www.zhihu.com/question/41709402        使用过友宝或者某些自动售货的无人售货机的同鞋们知道,友宝的二维码是一个二维码支持多种支付方式支付的。那么实现的思路是什么呢?        应该注意到,那个二维码不是普通的收款码,而是一个商品网页。        其实很简单,二...

2018-10-23 16:44:00 297

转载 用阻塞队列ArrayBlockingQueue实现简单生产者消费者案例

ArrayBlockingQueue 是一个用数组实现的有界阻塞队列,其内部按先进先出的原则对元素进行排序,其中put方法和take方法为添加和删除的阻塞方法。import java.util.concurrent.ArrayBlockingQueue;import java.util.concurrent.TimeUnit;public class ArrayBlockingQueu...

2018-10-12 14:09:02 1826

原创 java线程池7个构造器参数

java.uitl.concurrent.ThreadPoolExecutor类是线程池中核心的一个类,可以看到,最后一个构造器的参数是最齐全的,前三个都是初始化了某些参数。所有参数说明:corePollSize:核心线程数。在创建了线程池后,线程中没有任何线程,等到有任务到来时才创建线程去执行任务。默认情况下,在创建了线程池后,线程池中的线程数为0,当有任务来之后,就会创建一个线...

2018-10-12 13:32:58 672

原创 java获取凌晨0点整的时间戳

java获取零点整的时间。long nowTime =System.currentTimeMillis();long todayStartTime =nowTime - ((nowTime + TimeZone.getDefault().getRawOffset()) % (24 * 60 * 60 * 1000L));

2018-07-28 11:43:33 17560 1

原创 Mybatis一级缓存导致分布式环境下的查询脏数据

    Mybatis一级缓存,也称本地缓存,默认是SqlSession级别的缓存。在一次程序与数据库的会话(Sqlsession)中,mybatis会维护一个以hashmap为存储结构的一级缓存,在这个会话中,只要在两次相同条件的查询中间,这个会话里没有出现增删改的操作,那么Mybatis会在第二次查询时候在缓存中将这个结果返回,导致两次查询的返回结果对象其实是一个,用“==”比较结果为true...

2018-07-25 09:24:38 9297 8

空空如也

空空如也

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

TA关注的人

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