0%

前言

有这么个需求,从某个数组中提取一个字段组成一个数组,需要用到数组的map函数

实现
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
let arr = [
{
'id': '1',
'name': '小红',
},
{
'id': '2',
'name': '小白',
},
{
'id': '3',
'name': '小黄',
}
];
// 使用map()生成数组
let new_arr = arr.map(obj => {return obj.name})
// 输出 ['小红','小白','小黄']

前言

最近需要求一个list中的某个字段的和,想到是否可以用stream中的方法,查询了一下,还真是可以,记录一下

实现

我的是计算价格,所以字段类型是BigDecimal,方法如下

1
list.stream().map(Plan::getAmount).reduce(BigDecimal.ZERO,BigDecimal::add);

如果是int double long,则方法如下

1
double max = list.stream().mapToDouble(User::getHeight).sum();

前言

最近有个需求,只需要局部更新表格中的某一行数据,不需要全表更新

解决办法
1
this.$set(this.list[row], 'status', 'SUCCESS')

使用set函数,第一个是要更新的行,第二个是要更新的字段,第三个是值

这是更新某行的某个字段,如果要更新一整行的所有数据,如下:

1
this.$set(this.list, index, row)

第一个参数是整个table的数据,第二个是索引,第三个是要更新的数据

前言

最近使用上了swagger3,发现以前swagger2的注解都没有了,复制过来还不能直接用,下面记录下变化

常用注解

swagger3的注解包路径为io.swagger.v3.oas.annotations

阅读全文 »

前言

项目上在用mybatis-plus后,我想更新一个字段为null值时发现设置到实体中更新无效,并没有更新,发现需要在字段上加个注解

解决

如果是新增时,在实体类对应的字段上加注解@TableField(insertStrategy=FieldStrategy.IGNORED),忽略null值的判断,例如

1
2
@TableField(insertStrategy = FieldStrategy.IGNORED)
private String addr;

如果是更新时,在实体类对应的字段上加注解@TableField(updateStrategy=FieldStrategy.IGNORED),忽略null值的判断,例如

1
2
@TableField(updateStrategy = FieldStrategy.IGNORED)
private String addr;

共有一下几个可选值,不加的话默认就是not_null,所以默认不能更新null值进去

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
/**
* 字段策略枚举类
* <p>
* 如果字段是基本数据类型则最终效果等同于 {@link #IGNORED}
*
* @author hubin
* @since 2016-09-09
*/
public enum FieldStrategy {
/**
* 忽略判断
*/
IGNORED,
/**
* 非NULL判断
*/
NOT_NULL,
/**
* 非空判断(只对字符串类型字段,其他类型字段依然为非NULL判断)
*/
NOT_EMPTY,
/**
* 默认的,一般只用于注解里
* <p>1. 在全局里代表 NOT_NULL</p>
* <p>2. 在注解里代表 跟随全局</p>
*/
DEFAULT,
/**
* 不加入 SQL
*/
NEVER
}

前言

最近项目上有个需求,需要将记录导出成word文档形式,word文档里是一个表格,类似于评分表之类的,之前导出做的基本都是excel,这是首次碰到需要导出word文档形式的,下面记录下如何导出

过程

一般excel导出用的基本都是apache的poi相关的,这次的word也是,首先引入依赖

1
2
3
4
5
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>5.0.0</version>
</dependency>
阅读全文 »

前言

最近项目上需要生成一些较为真实的测试数据给客户演示,所以比如用户名称里那些测试1,测试2这样的就不太好了,但是自己想,可能想个三五个还行,如果需要个几百条几千条的,可就没那么简单了,下面推荐一个工具,非常好用

common-random

简单易用的随机数据生成器。一般用于开发和测试阶段的数据填充、模拟、仿真研究、演示等场景。可以集成到各种类型的java项目中使用。

阅读全文 »

前言

最近看某个项目时看到了两个比较好的后台开源框架,非常不错,开发过程中会比较常用,所以记录一下也推荐一下

Forest

(官方介绍)Forest 是一个开源的 Java HTTP 客户端框架,它能够将 HTTP 的所有请求信息(包括 URL、Header 以及 Body 等信息)绑定到您自定义的 Interface 方法上,能够通过调用本地接口方法的方式发送 HTTP 请求

阅读全文 »

前言

最近再用MySQL数据库排序时遇到了一个报错,Out of sort memory, consider increasing server sort buffer size,字面翻译就是排序缓冲区内存不足,下面记录下如何解决

解决

1、打开MySQL终端连接到数据库

1
mysql -u root -p

输入密码后,连接到数据库

2、用命令看下当前缓冲区大小

1
show variables like '%sort_buffer_size%'; 

找到 sort_buffer_size这行,后面的value就是大小,比如1024 * 1024 才是1KB的大小,根据实际情况调整该大小

3、调整sort_buffer_size大小,比如我要调整到512k

1
SET GLOBAL sort_buffer_size = 512000000;

4、执行上述sql后,不要着急查询,需要先exit退出当前mysql连接,重新连接才能生效,如果是navicat,需要关闭当前数据库连接,重新打开才可生效

最后再尝试排序,发现已正常,无报错

注意

这种设置方式在mysql重启后会失效,所以如果需要永久生效,请在my.cnf中配置

前言

首先flex属性是flex-growflex-shrinkflex-basis的缩写。

flex属性的作用就是制定了每个人该如何分配到家产的规则

  • flex-basis就是分配固定的家产数量。
  • flex-grow就是家产剩余家产仍有富余的时候该如何分配。
  • flex-shrink就是家产剩余家产不足的时候该如何分配。
语法
1
flex: none | auto | [ <'flex-grow'> <'flex-shrink'>? || <'flex-basis'> ]

首先是单管道符|。表示排他。也就是这个符号前后的属性值都是支持的,且不能同时出现。因此,下面这些语法都是支持的:

阅读全文 »