- 博客(62)
- 资源 (1)
- 收藏
- 关注
原创 疲劳度 间隔指定时间 更换展示顺序
用户9.1日 看到顺序为A,B,C。9.4日,看到顺序为B,C,A。9.7日,看到顺序为C,A,B。间隔三天,更换展示顺序。
2023-09-15 14:50:50
164
原创 Java实现 四舍五入取整到百位 四舍五入取整到千位 数字取整到千位 数字取值到千位 数字取整到百位 数字取值到百位
现有一数字,2345.67 需要取值为2000;12356 取值为12300;正常思路 大概就是/1000 /100取商 再乘以对应的1000 或者 100;这里我们可以利用BigDecimal的setScale方法来做。第一个需要取值到千位,第二个需求取值到百位。但是看起来比较low,也不咋方便。千位-3 百位-2 以此类推。
2022-10-19 14:56:41
1959
1
原创 Json转指定泛型对象
public static void main(String[] args) { Map<String, RedisDouyinStoreProductModel> map = new HashMap<>(); RedisDouyinStoreProductModel model = new RedisDouyinStoreProductModel(); model.setCover("ddddd"); ma...
2021-11-18 16:21:15
1173
原创 阿里云ONS RocketMQ接入指南
1. 配置阿里云accessKey@Configuration@ConfigurationProperties(prefix = "aliyun.auth")public class AliyunAuthConfig { private String accessKey; private String secretKey; public String getAccessKey() { return accessKey; } publ.
2021-11-18 16:05:12
2158
原创 Map中compute,computeIfAbsent,computeIfPresent方法
1.computecompute:V compute(K key,BiFunction < ? super K, ? super V, ? extends V> remappingFunction)compute的方法,指定的key在map中的值进行操作 不管存不存在,操作完成后保存到map中 HashMap<String,Integer> map = new HashMap<>(); map.put("1",1); .
2021-11-18 15:56:38
643
原创 ES教程 -- ES命令 | ES JAVA API 学习记录(三)
SpringBoot ElasticSearch Starter API1. pom <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-elasticsearch</artifactId> <version>2.3.7.RELEASE</...
2021-11-18 15:42:13
1765
原创 ES教程 -- ES命令 | ES JAVA API 学习记录(二)
4. 聚合查询假设存在一个order索引,存储了每一笔布料销售订单,里面包含了布料颜色字段color4.1根据color进行分组统计数量GET /order/_search{ "size" : 0, // 设置size=0的意思就是,仅返回聚合查询结果,不返回普通query查询结果。 "aggs" : { // 聚合查询语句的简写 "popular_colors" : { // 给聚合查询取个名字,叫popular_colors "t
2021-09-09 23:02:21
390
原创 ES教程 -- ES命令 | ES JAVA API 学习记录(一)
1. ES 基础常用命令1. 获取某索引下数据 默认只展示10条GET {indexName}/_search2. 无条件 分页查询 es默认从0页开始 eg:获取第一页30条数据GET {indexName}/_search{ "from": 0, "size": 30}3. 条件查询es字段类型可以进行设置 这里针对keyword 和text类型数据查询进行比较查询关键字:term、match、match_phrase、query_string...
2021-09-08 19:54:03
513
原创 Java 拷贝对象集合属性 集合泛型不一致 也可拷贝
Demo 对象如图我们同时创建三个相同属性Vo对象当我们使用BeanUtils进行拷贝时,会发现这样的问题public static void main(String[] args) { Student student = new Student(); student.setStudentName("大明"); List<Student> studentList = new ArrayList<>(...
2021-08-31 16:15:08
1910
原创 MySQL导入数据报Got a packet bigger than‘max_allowed_packet’bytes错误的解决方法
通过终端进入mysql控制台navicat进入控制台的入口在这里,中英文版本在同一个位置输入如下命令,修改即可注意,使用这种方法,重启服务器之后又恢复默认值了。这里博主只是导数据的时候临时将其值设置大一点,导完之后尽量让其恢复原值,因为max_allowed_packet设置过大可能会导致服务器太忙来不及接收,网络差的时候也可能会出现丢包的现象。show VARIABLES like '%max_allowed_packet%';set global max_allow
2021-03-25 17:39:26
752
原创 Java8 不改变对象类 不重写equals 对集合中对象的某属性进行重复过滤
通过以下方法:public static <T> Predicate<T> distinctByKey(Function<? super T, ?> keyExtractor) { Set<Object> seen = ConcurrentHashMap.newKeySet(); return t -> seen.add(keyExtractor.apply(t));}使用demo:public sta.
2021-02-26 14:04:38
404
原创 @Scheduled教程1-- 指定线程池运行定时任务
1. 未指定线程池需要注意的@Scheduled默认情况下只有一个线程,并不能同时运行多个任务,分析源码可以看到运行demo 在控制台我们可以看到打印出来的线程名称2. 指定线程池运行定时任务自定义一个线程工厂继承ThreadFactory进行线程配置package com.example.demo;import lombok.extern.log4j.Log4j;import java.util.concurrent.ThreadFactory;import
2021-01-28 17:38:09
3704
1
原创 算法学习记录--持续更新
目录1.只出现一次的数字2.平方数之和1.只出现一次的数字给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。示例 1:输入: [2,2,1] 输出: 1示例2:输入: [4,1,2,1,2] 输出: 4题解:任何数和0做异或运算,结果仍然是原来的数,即 a ^ 0 = a。任何数和其自身做异或运算,结果是0,即 a ^ a = 0。异或运算满足交换律和结合律,即 a ^ b ^ a=b ^ a...
2020-12-09 10:01:43
139
原创 JAVA如何判断对象某些属性是否一致(即JAVA对象如何重写equals和hashcode方法)
举个????:我们创建一个Student对象,它分别有age,name,id三个属性在没有重写equals和hashcode方法的时候,我们可以看到,即使对象属性值相同,他们也是不相等的,因为地址值不同接下来我们重写Student的equals与hashcode方法,我们认为age和name相同,这两个对象就是同一个测试:在重写了以后,s1与s2 id不同,age,name相同我们认为他们相等,符合预期有的同学可能存在这样的疑问,只重写了equals没有重写hashcode的效果
2020-09-16 12:03:49
2090
原创 JAVA 实现对图片打码,打马赛克
一. 图片区域类package com.example.demo.xxx;/** * 图片区域类 * @author jlm * */public class ImageArea { int x; //指定区域左上角横坐标 int y; //指定区域左上角纵坐标 int width; //指定区域宽度 int height; //指定区域高度 public ImageArea(int x, int y, int width, int height
2020-08-05 16:04:04
1859
2
原创 分库分表教程(Sharding-JDBC) -07
一. 增加主从数据库配置基于05章内容,我们在application.properties增加如下内容1. 增加从数据库配置spring.shardingsphere.datasource.s0.type = com.alibaba.druid.pool.DruidDataSourcespring.shardingsphere.datasource.s0.driver-class-name = com.mysql.jdbc.Driverspring.shardingsphere.datas
2020-07-26 00:18:28
247
原创 分库分表教程(Sharding-JDBC) -06
一. 配置MySQL数据库主从同步系统环境:LinuxMySQL版本:5.7 注意:主从数据库MySQL版本务必保持一致具体概括为以下操作步骤1)开启master的二进制日志2)开启slave的二进制日志3)将slave指向master4)开始复制1.1 开启master二进制日志1)编辑mysql配置文件vi /etc/my.cnf2)添加二进制日志配置,开启二进制(mysql-bin只是二进制日志名称,可以自行指定)server-id=1 ...
2020-07-14 23:37:36
274
原创 JAVA 实现将List集合分成指定大小的多个List集合(将List分成多个小List)
第一步:修改pom文件<!-- https://mvnrepository.com/artifact/com.google.guava/guava --><dependency> <groupId>com.google.guava</groupId> <artifactId>guava</artifactId> <version>23.0</version></depend
2020-07-03 17:44:39
3647
原创 分库分表教程(Sharding-JDBC) -05
公共表公共表属于系统中数据量较小,变动少,而且属于高频联合查询的依赖表。参数表、数据字典表等属于此类型。可以将这类表在每个数据库都保存一份,所有更新操作都同时发送到所有分库执行。1.建库建表...
2020-06-09 00:29:56
423
原创 分库分表教程(Sharding-JDBC) -04
垂直分库操作垂直分库其实是指按照业务将表进行分类,分布到不同的数据库上面,每个库可以放在不同的服务器上,它的核心理念是专库专用。接下来看一下如何使用Sharding-JDBC实现垂直分库1.建库建表CREATE DATABASE `user_db` CHARACTER SET 'utf8' COLLATE 'utf8_general_ci';DROP TABLE IF EXISTS `t_user`;CREATE TABLE `t_user` (`user_id` bigint(
2020-05-12 19:40:14
196
原创 分库分表教程(Sharding-JDBC) -03
分库操作1.创建两个数据库,分别具有相同的订单表2.修改配置文件,配置分库策略#sharding-jdbc分片规则配置#数据源spring.shardingsphere.datasource.names = m1,m2spring.shardingsphere.datasource.m1.type = com.alibaba.druid.pool.DruidDataSourcespring.shardingsphere.datasource.m1.driver-class-nam
2020-05-12 17:06:37
257
原创 分库分表教程(Sharding-JDBC) -02
分表操作1.首先我们创建一个数据库和两张表CREATE DATABASE `order_db` CHARACTER SET 'utf8' COLLATE 'utf8_general_ci';-- 创建订单库order_dbCREATE DATABASE `order_db` CHARACTER SET 'utf8' COLLATE 'utf8_general_ci';-- 在o...
2020-05-01 00:20:54
492
3
原创 讲解:LocalDate with(TemporalField field, long newValue)怎么用!!!!!
全网查了半天,官网api文档也看了,就是不明白这个方法到底什么意思!!!!还有这种傻x,官网复制黏贴一遍就发出来,浪费时间,让我生气!前人栽树后人乘凉,写下这篇博客,让后来的小伙伴少走点弯路如图,我们首先定义一个localDate时间为2019-06-13(周四),接下来定义以周五作为起始,一周7天的weekFields对象那么下面这段代码什么意思呢?LocalDat...
2020-04-08 18:11:41
2379
原创 解决MySQL导入数据报错2013 - Lost connection to MySQL server during query
这篇文章非常详细,不做赘述仙人指路 -----》https://www.jianshu.com/p/98c7a63b84c3分析原因是我的sql文件太大导致的,所以直接修改了max_allowed_packet 解决问题set global max_allowed_packet=1024*1024*16;详细内容可参考文内连接...
2020-04-02 15:57:49
15072
原创 解决MySQL导入数据报错1067 - Invalid default value for 字段名
由于数据库版本升级,老数据库的数据文件导出以后,在新版本的数据库上执行会报错这种问题多是由于默认值不兼容引起的,我们可以通过修改sql_mode来解决这个问题考虑到职场小白,这篇会详细的介绍步骤,包括登录命令等(自己也是从小白过来的,很理解网上查到一篇资料,却不知道博主所云的痛,所以我的博客对新手都比较友好)步骤如下:通过命令登录MySQLmysql -u 用户名 -pW...
2020-04-02 15:47:52
4019
2
原创 java8 实现两个集合之间进行元素比较
首先我们有两个集合A,B,我们以其中一个集合A为基准想获得B集合中的元素,相对于A集合来说,哪些元素不存在,哪些元素A没有业务场景:以db1中的数据为准,更新db2中的数据,db1有的,db2没有的进行添加操作,db2有的,db1没有的进行删除操作那么我们就需要知道,哪些元素是要添加的,哪些是要删除的传统做法:通过标记实现 private static Map<...
2020-03-20 16:58:18
15722
原创 "$"作为分隔符的字符串如何进行切割
举例现有字符串:"a$b$c" 我们需要获取的结果是[a,b,c]public static void main(String[] args) { String s = "a$b$c"; String[] $s = s.split("$"); System.out.println("$s = " + Arrays.toString($s)...
2020-03-04 21:22:50
2171
原创 分库分表教程(Sharding-JDBC) -01
1.概念介绍分库分表就是为了解决由于数据量过大而导致数据库性能降低的问题,将原来独立的数据库拆分成若干数据库组成,将数据大表拆分成若干数据表组成,使得单一数据库、单一数据表的数据量变小,从而达到提升数据库性能的目的1.1分库分表方式分库分表包括分库和分表两个部分,在生产中通常包括:垂直分库、水平分库、垂直分表、水平分表四种方式。(1) 垂直分表以商品举例,商品表通常包括id,所...
2019-12-30 11:20:52
417
原创 前后端通信进行AES加密(Vue - Java)
一. 前端工作1.安装crypto-js安装命令:npm install crypto-js2.js编写import CryptoJS from "crypto-js";const CRYPTOJSKEY= "abcdefgabcdefg12";// 加密const encrypt = (plaintText)=> { var plaintText ...
2019-12-24 16:24:39
977
1
原创 通过JAVA代码备份数据库数据
操作系统:Linux 数据库:MySQL注意:只可用于备份代码运行环境下的数据库,例如A服务器运行代码,访问B服务器数据库进行备份,则不可行。代码如下:package com.remoteservice.controller;import org.springframework.web.bind.annotation.RequestMapping;import org....
2019-12-03 17:00:19
910
2
原创 ConcurrentHashMap 和 Hashtable 的区别
ConcurrentHashMap 和 Hashtable 的区别主要体现在实现线程安全的方式上不同。底层数据结构:JDK1.7的 ConcurrentHashMap 底层采用分段的数组+链表实现,JDK1.8 采用的数据结构跟HashMap1.8的结构一样,数组+链表/红黑二叉树。Hashtable 和 JDK1.8 之前的 HashMap 的底层数据结构类似都是采用数组+链表的形...
2019-11-29 11:53:29
679
原创 java:数组转换成List集合讲解(使用Arrays.asList()转换数组为集合时,对集合进行操作报UnsupportedOperationException异常)
Arrays.asList()在平时开发中还是比较常见的,我们可以使用它将一个数组转换为一个List集合。String[] myArray = { "Apple", "Banana", "Orange" }; List<String> myList = Arrays.asList(myArray);//上面两个语句等价于下面一条语句List<String> my...
2019-11-19 17:38:05
344
原创 解决:SpringBoot 配置LogBack 后一天的日志打印到前一天日志
原LogBack配置文件:<?xml version="1.0" encoding="UTF-8"?><configuration debug="false"> <!--定义日志文件的存储地址 勿在 LogBack 的配置中使用相对路径--> <property name="LOG_HOME" value="../logs/remote_s...
2019-11-15 13:47:21
2427
1
原创 java8 parallel并行处理(附对比)
适用场景:前提保证线程安全,例如需要将多个文件下载保存到服务器通常写法:public static void main(String[] args) { List<String> list = new ArrayList<>(); list.add("http://172.16.140.152:8080/cms1/filePath/Image/20...
2019-11-08 15:35:14
5170
3
原创 Docker教程-04 应用部署
4 应用部署4.1 MySQL部署(1)拉取mysql镜像docker pull centos/mysql-57-centos7(2)创建容器docker run -di --name=tensquare_mysql -p 33306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql-p 代表端口映射,格式为 宿主机映射端口:容器运行...
2019-11-06 16:08:53
208
原创 JAVA (Graphics2D)解决合成图片失真问题
附对比图:合成后失真严重代码优化后:原代码:参数解释:1. img为你需要把他合成到A图片上的B图片,以下简称为章2. srcImagePath为A图片的绝对路径3. targetPath为合成后的图片输出路径4. x,y为章需要合成到A图片上的位置坐标,w,h为将章缩小到多少长宽比例注意这行代码:g.drawImage(img, x, y, w, h,...
2019-11-05 14:31:06
10919
3
原创 The connection property 'zeroDateTimeBehavior' acceptable values are: 'CONVERT_TO_NULL 报错
通过代码jdbcTemplate操作数据库时会发现报错,完整报错信息如下The connection property 'zeroDateTimeBehavior' acceptable values are: 'CONVERT_TO_NULL', 'EXCEPTION' or 'ROUND'. The value 'convertToNull' is not acceptable.通...
2019-10-23 16:24:29
12013
原创 JAVA实现将文字合成到指定图片的指定位置(JAVA合成文本文字到图片文件:附font字体不生效解决办法)
实现效果如图:代码如下:参数s1,s2分别代表你想要合成到图片中的文字信息,如需多个可自行进行修改import com.sun.image.codec.jpeg.JPEGCodec;import com.sun.image.codec.jpeg.JPEGImageEncoder;import javax.imageio.ImageIO;import java.awt.*;...
2019-10-22 10:56:51
1393
11
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人