Chuenhung的个人网站

chuenhung.github.io

需求描述

在Java后端开发的时候,我们有时为了隔离变化,经常需要把数据库查询出来的实体转为返回前端的对象,我们不希望写很长的set方法去完成,于是可以考虑使用BeanUtils或BeanCopier工具类。下面通过Awards和AwardsResp类的转换简单说明下用法。

阅读全文 »

背景

项目需要把Excel导入,并且支持更新成果简介字段的值。这种Excel模版一共有9个,对应9大奖项,其中双创奖的导入模版如下:
在这里插入图片描述

数据库表设计

主表为t_awards,主键用的是UUID,主要存储合并单元格部分的数据(一级分类、二级分类、获奖年份、成果名称等),通过award_type区分不同奖项;详细表为t_awards_detail,主要存储非合并单元格数据(获奖单位、获奖个人、员工编号等),award_id对应t_awards表的主键。

t_awards表结构如下:
在这里插入图片描述
t_awards_detail表结构如下:
在这里插入图片描述
截图中橙色为主键、绿色为普通索引、红色为联合唯一索引。

阅读全文 »

背景

公司项目需要做一个图片预览的功能,并且要展示图片的分辨率(即宽和高),目前的框架没有这个功能,所以得自己写一个方法去读取上传的附件。百度了一下,发现用Java包中的ImageIO就可以得到图片的宽和高。但是,有部分图片会读出null,然后空指针异常。主要代码如下:

1
2
3
4
File file = new File(filePath);
BufferedImage image = ImageIO.read(file);
result.put("width",image.getWidth());
result.put("height",image.getHeight());

解决过程

造成这个问题的原因是图片的后缀可能是jpg、png,但是图片实际上是另一种格式(比如webp、tif)。先打印一下ImageIO支持的文件格式,代码如下:

1
2
3
4
5
// JDK8输出:JPG jpg bmp BMP gif GIF WBMP png PNG wbmp jpeg JPEG
// JDK11输出:JPG jpg tiff bmp BMP gif GIF WBMP png PNG JPEG tif TIF TIFF wbmp jpeg
for (int i = 0; i < ImageIO.getReaderFormatNames().length; i++) {
System.out.print(ImageIO.getReaderFormatNames()[i] + " ");
}

可以看出ImageIO不支持读取webp格式,JDK8之前不支持读取tif格式图片。
如果图片源格式是tif,那么在项目中加入下面的依赖就行:

1
2
3
4
5
<dependency>
<groupId>com.twelvemonkeys.imageio</groupId>
<artifactId>imageio-tiff</artifactId>
<version>3.4.1</version>
</dependency>

ImageIO 会自动搜索类路径下继承的接口和子类不用改代码。

阅读全文 »

@RequestBody注解支持空参数

@RequestBody(required=false),get/post且实体不加无参构造方法都行

windows查看占用端口并杀死对应进程

1
2
3
4
5
6
7
8
9
10
11
E:\Documents\MyIdeaProjects\act\target>netstat -ano |findstr "8888"
TCP 0.0.0.0:8888 0.0.0.0:0 LISTENING 14176
TCP [::]:8888 [::]:0 LISTENING 14176

E:\Documents\MyIdeaProjects\act\target>tasklist |findstr "14176"
javaw.exe 14176 Console 2 254,736 K

E:\Documents\MyIdeaProjects\act\target>taskkill /f /t /im "javaw.exe"
成功: 已终止 PID 14176 (属于 PID 13304 子进程)的进程。

E:\Documents\MyIdeaProjects\act\target>netstat -ano |findstr "8888"
阅读全文 »

问题描述

在使用PageHelper进行分页的时候,大部分时候都是正常的,但是有一个接口的分页总数一直有问题(为当前页的数量、页数一直为1)。先看看目前的代码:

阅读全文 »
0%