自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(222)
  • 资源 (1)
  • 问答 (1)
  • 收藏
  • 关注

原创 Java实现Excel导入和导出,看这一篇就够了(珍藏版2.0)

Java实现Excel导入和导出,看这一篇就够了 ( 珍藏版 2.0 版本 )

2023-10-27 16:42:34 3853 48

原创 Java实现Excel导入和导出,看这一篇就够了(珍藏版)

前言最近抽了两天时间,把Java实现表格的相关操作进行了封装,本次封装是基于POI的二次开发,最终使用只需要调用一个工具类中的方法,就能满足业务中绝大部门的导入和导出需求。环境准备1. Maven 依赖本次工具类的封装主要依赖于阿里巴巴的JSON包,以及表格处理的POI包,所以我们需要导入这两个库的依赖包,另外,我们还需要文件上传的相关包,毕竟我们在浏览器页面,做Excel导入时,是上传的Excel文件。<!-- 文件上传 --><dependency>

2021-12-20 19:01:30 172933 550

原创 Java常用技术:Httpclient 实现网络请求 + Jsoup 解析网页(案例实战)

【前言】你是否也曾羡慕过有些 phython 大神有着如下的神操作:他们就轻轻的执行一串代码,就能循环的抓取很多自己想要的数据。其实不用太羡慕他们,因为不光 phython 能实现,我们用 Java 同样也能够轻松实现。闲话不多说,下面我们直接开始实战:【1】创建项目(1.1)我们用 IDEA(Eclipse同理) 创建一个全新的maven工程,我这里取名工程名 zyqok,各位随意。(1.2)在 pom.xml 里面加上<dependencies>.

2020-08-07 17:57:48 2923 18

原创 一看就懂:阿里云 OSS

【前言】在如今的互联网行业中,华为、百度、腾讯、阿里等大公司逐渐傲视群雄,规模越来越大。这些大佬公司深知互联网行业的各种弊端,逐渐延伸出很多服务,专门给了广大中小公司提供便利。比如,你的公司开发一个系统,要用到人脸识别技术。一般公司是不会自己去开发一套的,那个耗时又费力。但这些服务,这些大佬公司早就开发好了,你只需要付点费用,调用他们相关接口就可以实现了。像这样的服务还有很多,...

2019-09-29 16:40:15 57299 43

原创 网站开发:从写代码到公网访问整个流程(CSDN征文活动第一期获奖文章)

【获奖感言】2019年7月18日感谢CSDN给了我这个殊荣,让我这篇文章在CSDN征文活动第一期的获奖!当初并未想过获得这个荣誉,只是想好好总结,从而帮助更多的朋友!谢谢CSDN! !谢谢所有点赞朋友的支持!!获奖名单出处:https://blog.csdn.net/blogdevteam/article/details/94545970-------------------...

2019-07-08 18:03:21 6585 24

原创 Springboot项目搭建(前端到数据库,超详细)

下面详细谈谈我的第一个springboot项目搭建,希望会给还在摸索的同学一点帮助。项目说明:开发环境:Eclipse 4.42框架:Springboot工具:Maven前端:Html、Thymeleaf后台:Hibernate数据库:Mysql为什么要搭建Springboot项目?教科书式的阐述这里就不说了,我就总结为两个词语 “简单、方便”。为了更...

2019-02-11 14:40:32 126374 183

原创 缓存工具类

【代码】缓存工具类。

2023-07-20 17:15:56 880

原创 根据Java实体生成建表SQL(2.0版本)

【代码】根据Java实体生成建表SQL(2.0版本)

2023-07-07 15:24:44 1625

原创 Mysql数据库比较工具类(2.0版本)

【代码】Mysql数据库比较工具类(2.0版本)

2023-07-07 15:19:10 483

原创 Java 一键生成表controller、service、mapper等文件(不引入插件)

【代码】Java 一键生成表controller、service、mapper等文件(不引入插件)

2023-05-16 14:53:31 1406 3

原创 Mysql 工具类(一键生成所有表的表字段设计和建表语句)

说明:本工具类由于需要导出表格,因此需要用到我的Excel工具类。工具描述:一键获取所有表的建表语句、一键获取所有表的表字段设计。

2023-04-11 16:23:25 836

原创 Postgres + Mybatis 进行批量操作示例

首先,要有冲突的话,需要有一个唯一性的索引,这里假设我们书名唯一,按下面 SQL 所示,在数据库中给 name 字段创建一个唯一性索引(索引名为 unique_name_index )。模拟数据之前,我们可以先看到数据库中,只有四大名著四本书,现在我们新增两本,一本是数据库中已经存在的三国演义,一本则是数据中不存在的聊斋志异。所谓冲突,就是在批量新增的时候,新增的实体中,可能和数据库的唯一性索引重复,导致批量插入报错(如下图)。简单的说就是批量新增或更新,即不冲突的数据进行新增,冲突的数据进行更新。

2023-04-10 14:40:45 3345

原创 Java 递归求树工具类

那么当我们从数据库查询出来,返回给前端的时候,前端又需要给出树形层级的时候,这个时候可能就需要递归处理为树形结构了,因此下面这个工具或许就可以用得上了。@TreeParentKey 标识父节点标识。@TreeChildren 标识子孙节点集合。@TreeKey 标识唯一。

2023-03-09 14:30:17 778

原创 Java 对象拷贝工具类

我们在Java编码中,有时候可能会经常遇到对象拷贝的场景。比如(1)当我们更新一个对象的时候,如果要记录对象属性的前后变化,那么在更新对象之前,我们应该首先将对象拷贝暂存起来,且这个时候的拷贝一定是深拷贝(内存地址不同的两个对象),因为Java存在对象引用,将一个对象赋值给另外一个对象,他是浅拷贝的(两个不同变量名,但实际内存地址一样的两个对象)的话,也就是说当我们去更新完成属性值的时候,其实是设置的同一个对象,那么这个时候就会导致更新前后无变化的情况。............

2022-07-19 16:12:11 9706 5

原创 Java 解析 zip 压缩包,并获取文件内容

页面上传一个源码压缩包,后端将压缩包解压,并获取每个文件中的内容。(1)首先定义一个与解压文件对应的实体类。(2)接下来就是解压的工具类了。工具类中提供了两个解压的方式:方式一:本地文件 File 进行解压。方式二:上传文件 MultipartFile 进行解压。我们以上传压缩包解析为例,通过 Postman 进行接口测试,解析的结果如下。...

2022-07-13 10:07:13 9702 5

原创 Java:获取文本字符串的每一行数据

首先,定义一个实体,实体包含行号和内容两个属性;调用下面方法即可:测试代码:测试效果:

2022-07-11 15:57:30 1600

原创 Java 时间工具类(珍藏版)

肝了两天,重新整理了下时间工具类,以后我就以该时间工具类进行项目开发了,后会不定期更新功能,也欢迎留言需求,让工具类不断的完善。

2022-06-20 17:54:58 4430 5

原创 手写 @Valid 字段校验器

上次给大家讲述了 Springboot 中的 @Valid 注解 和 @Validated 注解的详细用法:@Valid 和 @Validated 注解用法详解当我们用上面这两个注解的时候,需要首先在对应的字段上打上规则注解,类似如下。@Datapublic class Employee { /** 姓名 */ @NotBlank(message = "请输入名称") @Length(message = "名称不能超过个 {max} 字符", max = 10)

2022-05-07 11:26:49 1338

原创 Java工具类:CompareUtils(比较对象字段值变化)

目录前言示例引入工具文件CompareUtilsCompareCompareNode前言我们在工作中,可能会在日志中记录数据的变化情况,这样可以有助于运维人员对问题排查。或者在公共处理的数据增加一个日志页面,记录每次修改的变化。比如:小王在 2022-05-05 23:58:27 时间点修改了年龄,把 28 改为了 18), 这样也可以方便用户的数据追踪,这样公共数据一旦出了问题,我们从日志进行跟踪,那么最后是谁造成的,也就一目了然。可见,展示字段值的变化..

2022-05-06 13:49:41 11437 4

原创 一看就懂:正则表达式

案例引入在讲正则表达式前,我们不妨先从一个场景来逐渐引入。你可能有过这样的经历:我们去某些网站注册帐号,当你在设置密码的时候,网站会提示你密码的长度范围,以及对应的规则限制(如下图)。根据上图,我们将密码设置规则可以描述为两个条件:(1)长度为6-16位;(2)密码中必须包含数字,大写字母,小写字母,特殊字符(指定字符);现在假设我们不知道正则表达式,作为程序员的你,该如何去实现这样一个密码验证呢?下面是我写的一个校验方法(样本):/** * 校验用户密码是否满足..

2022-03-25 18:09:23 79537 66

原创 SVN 使用详解(创建仓库,数据提交,分支创建与合并等)

现在版本控制工具常用的有 GIT 和 SVN,今天,我们就来分享下 SVN 下如果创建分支与合并分支。首先,我们需要在我们的计算机上安装SVN的客户端(该步骤略)。创建 SVN 仓库SVN 是个版本控制工具,要想通过它来管理我们的文件,首先需要创建一个 SVN 仓库。这个 SVN 仓库类似于我们的数据库,它将保存我们管理的所有文件。这个仓库你创建在计算机本地,就叫做本地仓库;如果你创建在远程计算机或者网络上,那就叫做远程仓库。本地仓库和远程仓库的访问方式一样,无非在拉取文件时,本地仓库填写的是本

2022-01-18 17:10:26 2483

原创 Java实现在图片上添加文字(水印)

今天分享一个:通过Java代码,给图片添加文字。比如下面这个图片,我们在左下角就添加了一个文字版的水印,那么这是如何实现的呢 ?目录【1】获取原图片对象(1.1)读取本地图片(1.2)读取网络图片【2】创建画笔【3】添加文字水印(3.1)如何确定水印位置 ?【4】获取处理图片【5】源代码【1】获取原图片对象首先,第一步,肯定是要让我们的程序,拿到需要处理的图片。我们程序获取图片的方式,通常有两种,一种是通过下载到本地,从本地读取;另外一种就是通过网

2022-01-12 16:26:20 9827 1

原创 Springboot 集成 Elasticsearch 详解

目录集成配置步骤步骤1:加入 Maven 相关依赖步骤2:配置 elasticsearch 的主机和端口步骤3:配置 Elaseticsearch 客户端步骤4:创建文档实体步骤5:创建 controller,service, dao 层相关功能实现1. 添加文档2. 修改文档3. 根据ID查询文档4. 根据ID删除文档5. 查询所有文档6. 条件查询(单个条件)7. 条件查询(多条件)8. 分页查询(降序)9. 分页查询(升序)...

2021-12-10 16:57:24 14496 13

原创 浏览器如何截图整个滚动屏 ?

【1】将浏览器滚动条滚动到顶部。【2】按下 F12 ,打开开发者窗口(方式二:鼠标右键,点击【检查】)。【3】按下 Ctrl + Shift + P,弹出浏览器指令窗口。【4】在指令窗口中输入:Capture full size screenshot,选择对应项。【5】这时候浏览器就会触发下载整个浏览器整个长屏页面了。【6】下面是效果图。...

2021-11-11 21:08:26 14010

原创 Java 工具类:SqlFileCompareUtils(比较数据库表和字段变化)

【产生背景】我们在实际开发的过程中,通常会有开发环境、测试环境、生产环境等。在这些环境中,一般会有各自对应的数据库,由于每次新需求都是在测试环境中进行的测试,所以就会导致不同环境的数据库结构有不同。当新一版本的功能在测试环境测好后,需要将新功能更新至生产环境,此时,生产环境数据库结构就需要再一次和测试环境数据库结构保持一致,才能保证新功能正常使用。【数据库比较】当我们想知道两个数据库的有哪些变化时候,如果每张表,每个字段的去比较,当在变化很大的时候,这将会是一个很不友好的体验,不但耗时耗

2021-11-04 15:30:03 21799

原创 工具方法:一次性将对象中所有null字段,转为空字符串

当我们的 Java 对象在响应前端,或者在做数据导出的时候,我们并不希望将对象中为 null 的属性值直接返回给前端,不然显示或导出的就是一个 null ,这样对用户不是很友好。如果我们一个个字段的去处理,这样不但增加了人力,而且使得代码中逻辑冗余,显得不够优雅。于是下面我写了一个通用方法:将对象中的 String 类型属性的null 值转换为空字符串的方法,具体代码如下:/** * 把对象中的 String 类型的null字段,转换为空字符串 * * @param &lt..

2021-10-25 11:32:29 9138 4

原创 Springboot 如何确定程序的应用类型 WebApplicationType ?

Springboot 启动的时候,

2021-09-27 19:05:09 4192 1

原创 @Accessors 注解详解

前言 1. @Accessors 源码 2. @Accessors 属性详解 2.1 fluent 属性 2.2 chain 属性 2.3 prefix 属性前言在你的工作中,有时候可能会看到@Accessors(chain = true)这样的注解,他是 lombok 插件包中的一个注解,那么它是什么意思呢?1. @Accessors 源码我们打开@Accessors 的源码可以看到:(1)该注解主要作用是:当属性字段在生成 getter 和 setter 方法...

2021-08-30 16:12:14 96012 31

原创 Yml转properties文件工具类YmlUtils(不用引任何插件和依赖)

【诞生背景】最近在做某配置中心的时候,配置中心采用porperties格式进行配置的(如下图)。而我们工程的项目配置文件是yml格式的(如下图)。如果人为手动的一条一条,将yml文件中的配置数据,添加到配置中心,难免会消耗大量的人力和精力,况且还容易输入错误。因此,需要一个工具或插件,将 yml 文件的格式,转换为properties文件。【Convert YAML and Properties File 插件的不足】IDEA 有一个插件叫 Convert YAML and.

2021-08-24 10:59:03 8911 6

原创 Apollo + Springboot 整合(多环境版)

(1)Apollo 配置中心创建项目。(2)将对应环境的相关配置全部添加到配置中心,然后发布。(3)pom.xml 中加入依赖<dependency> <groupId>com.ctrip.framework.apollo</groupId> <artifactId>apollo-client</artifactId> <version>1.5.1</version>&l.

2021-08-20 15:19:54 2007

原创 Java 查看类图工具(手写小工具,不用引任何包和插件)

我们在进行源码学习的时候,经常要查看某个类的类图,虽然 IDEA 有自带的类图显示,但那也只是付费版,社区版的并不支持,而 Eclipse 是压根儿就没有,其实功能挺简单的,于是就自己写了一个查看类图小工具给分享给大家。先放效果图:从这效果图中,我们就很清晰的看到,ArrayList 的父类是 AbstractList,父接口有 List、RandomAccess、Cloneable、Serializable。而父类AbstractList 的父类是AbstractCollection...

2021-08-18 17:37:15 950 2

原创 @inherited 注解详解

1【问题引出】在 Springboot 项目中,通常会有一个启动类,而启动类中通常会有一个名为@SpringBootApplication 的注解(如下图所示),而此注解就是 Springboot 项目启动类的核心注解。我们打开@SpringBootApplication 注解源码,可以看到,在源码中有一个 @Inherited 的注解,那么这个注解,它的作用是什么呢?2【@inherited 源码】在了解该注解作用之前,我们不妨看看该注解的英文解释和源码定义,这样会更加有...

2021-08-17 09:27:50 19962 17

原创 Springboot 如何配置多环境配置文件?

在我们的 Springboot 项目中,通常会有一个 application.yml 或 application.properties 的文件,这是整个 Springboot 项目的核心配置文件,通常文件中包含着端口、程序名、数据源等重要信息的配置。但我们在实际开发的过程中,由于涉及多个环境,需要配置多套不同的配置。就拿数据库来说,分为测试环境配置和生成环境配置,他们的链接信息肯定是不一样的。那么,我们在实际的工作中,是如何来确保在对应环境下读取对应的配置信息呢?【方法1】一个配置文件包含多个环境

2021-08-10 16:27:43 4266

原创 Docker 配置阿里云镜像加速器

1. 登录阿里云,获取加速地址地址:https://cr.console.aliyun.com/cn-beijing/instances/mirrors打开上面地址,并授权登录(没有阿里云帐号则注册一个),复制加速器地址。2. 检查daemon.json是否存在进入你的docker所在的服务器,并进入 /etc/docker 目录,查看是否有 daemon.json文件,没有则创建该文件。相关命令:# 进入 /etc/docker 目录cd /etc/docker/# 查看列表ls#

2021-07-18 16:57:23 440 1

原创 小工具:表单参数转为json参数

package com.zyq.test;import java.io.UnsupportedEncodingException;import com.alibaba.fastjson.JSONObject;public class Test { public static String str = "trainid=76&customerid=27&coursename=222222222222222&projectname=SC9820A&type.

2021-06-28 10:33:55 959

原创 一键生成实体类建表SQL

package com.zyq.util;import java.lang.reflect.Field;import java.util.Date;import java.util.LinkedHashMap;import java.util.Map;import java.util.Objects;import com.zyq.entity.Command;import io.swagger.annotations.ApiModel;import io.swagger.annotat.

2021-06-25 08:05:43 1462

原创 自定义常量注解@Desc

package com.zyq.annotation;import java.lang.annotation.ElementType;import java.lang.annotation.Retention;import java.lang.annotation.RetentionPolicy;import java.lang.annotation.Target;/** * 通用配置注解 */@Target(ElementType.FIELD)@Retention(Retentio.

2021-06-25 07:46:16 1020

原创 SpringBoot 程序启动后执行

spackage com.zyq.config;import org.springframework.boot.ApplicationArguments;import org.springframework.boot.ApplicationRunner;import org.springframework.stereotype.Component;/** * SpringBoot启动后,会执行下面 run 方法 * * @author Yuanqiang.Zhang * @si.

2021-06-10 09:14:23 619

原创 Springboot 自定义配置写法

配置类@Configuration@ConfigurationProperties("diy-config")public class DiyConfig { private String host; private String version; private String[] ips; private Developer developer; // setter、getter、toString 方法已省略}...

2021-06-07 16:46:49 353

原创 什么是稀疏数组?稀疏数组详解

【1】背景如下图所示,这里有一个 15 ×15 的棋盘,如果现在要让你通过编码的方式,让你将这盘棋局保存起来,你会怎么做呢?面对行列数据的保存,我相信大多人第一时间都会想到用二维数组进行保存。【2】普通数组保存棋盘数据比如,我们可以将棋盘进行抽象化,用一个 15 × 15 的二维数组来表示,然后用 0 表示空点,用 1 表示白子,用 2 表示黑子,于是就可以抽象为如下模样。于是,我们可以通过如下代码,将数据保存到二维数组中。/** * 将棋盘数据保存为二维数组 */.

2021-05-13 21:20:09 7431 8

考研单词5400汇总.xls

考研单词5400汇总

2021-10-18

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

TA关注的人

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