自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【JFinal】解决activerecord字段顺序问题

解决activerecord字段返回顺序问题

2022-06-28 14:22:39 241

原创 【MuleSoft】手把手教你考MCD - Level 1认证

Mulesoft Leve1认证

2022-03-16 16:08:10 2391 1

原创 【Mysql】将表中的时间整体增加1个月

演示的数据随着时间的推移逐渐过期,当显示最近几个月统计数据的时候就遇到了没有数据的尴尬,但是又不想再新增数据。所以,将表中数据的时间整体增加这个方案就挺完美的。UPDATE month_statistic SET statistical_time = DATE_ADD(statistical_time, INTERVAL 1 month);上面的示例是将所有的统计时间都增加了1个月。如果要增加1天、1周、1季度、1年都可以,只需要更改DATE_ADD()里面的参数:quarter:季,week:

2021-12-02 15:46:52 5870

原创 【Java】一行配置解决接口出入参驼峰下划线的转换

前后端分离的项目,通常前端通过下划线的参数请求接口,然后接口返回下划线的参数给到前端。由于java通常使用驼峰命名方式,要支持接受和返回下划线命名方式的参数就需要对数据进行转换。springboot项目中用一行配置即可实现该功能,在application.properties文件中加入这行代码:# 驼峰和下划线转换spring.jackson.property-naming-strategy=SNAKE_CASE但是使用过程中我发现一个很有意思问题,当我命名为aBb这种样式时,我接收不到a_bb

2021-09-09 17:15:58 2063 5

原创 【Mybatis】创建临时表实践

因为使用了大量的id来检索,为了提高检索效率,就想到将id写入到一张临时表里面,然后通过join的方式查询。由于每个操作得到的id是不一样的,所以需要的临时表名称也不能一样,所以需要手动创建自定义的表,使用后删除掉。如果是插入大量数据的效率问题可以参考这篇文章:MybatisPlus 大批量数据插入缓慢问题实测(四)多线程foreach方法有效,就是可能线程可能起的多了点,这个有需要可以注意优化下。mapper.javapublic interface TmpUserIdMapper extend

2021-09-06 17:30:25 6466 4

原创 [Mysql]上万insert数据导入mysql速度慢问题

【问题】在通过python写的脚本生成的十万行insert语句在执行时十分缓慢,40分钟都没有执行完,于是找了些解决办法,以下方法经过实践可以参考,提速效果明显,由小时优化到分钟或秒级。【方法】自定义事务 + insert语句优化START TRANSACTION;INSERT INTO user_info(user_id, name, age, xxx)VALUES(10101, '陈宝超', 58, ...) ,(10102, '施贵八', 36, ...) ,(...);COMMIT

2021-08-24 13:35:03 672

原创 【Docker】使用Docker部署spring boot应用

文件目录在linux环境上创建如下目录结构,并放入对应文件/applog # 日志目录,docker run的时候挂载到容器中/bin # 启动或卸载服务的地方 config/ # 配置文件目录,docker run的时候挂载到容器中 application.properties application-pro.properties start_up.sh uninstall.sh/build # 构建镜像的地方 Dockerfile build.sh xx.jar

2021-08-19 14:36:05 231

原创 【Mybatis】springboot + mybatis + pgsql表id自增

sql示例DROP TABLE IF EXISTS "public"."record";CREATE TABLE "public"."record" ( "id" serial8, "name" varchar(20) COLLATE "pg_catalog"."default" ...);COMMENT ON COLUMN "record"."id" IS "主键";COMMENT ON COLUMN "record"."name" IS "姓名";...model类@Data@

2021-05-21 17:44:59 896

原创 【Java】根据生日计算年龄

方式一:时间戳速算只适用于计算1970-01-01 08:00:00及之后出生的// 1971-01-01 08:00:00的时间戳private static final long TIME = 31536_000_000L;public Integer getAge(Long birth) { if (birth == null) { return null; } Long now = System.currentTimeMillis(); if (birth > now)

2021-05-13 11:21:01 9853 6

原创 【Python】读取json文件

json文件示例text.json{ "class":"cc" "students":[ { "name":"xx", "age":"18" }, { "name":"yy", "age":"18" } ]}python读取示例,python3写法read.py#!/usr/bin/python# coding=UTF-8import jsonimport sysdef main(json_file_path): # 打开文件

2021-05-12 11:21:20 384

原创 【Java】全局代理

大部分公司开发环境是局域网,需要通过代理的方式访问外部网络,有时候局域网没有资源,需要在代码中请求外部资源进行测试验证,就可以在测试那段代码中临时加入全局代理,用以验证,自测后删除。public void test() { // 全局代理 System.setProperty("proxyHost", "proxy.xx.com"); // 定义代理地址 System.setProperty("proxyPort", "8080"); // 定义代理端口号 ...}..

2021-05-12 10:08:43 1024

原创 【Java】@Scheduled定时任务

创建定时任务很简单,只需要在方法上面,使用@Scheduled注解即可。1 cron表达式指定定时器执行时间// 固定每天1点执行,无论上一次执行完没有,到时间会再执行。@Scheduled(cron = "0 0 1/1 * ?")public void task() {...}可根据不同的需求定义不同的cron表达式达到执行效果。2 fixedRate 和 fixedRateString 指定间隔时间这两个参数是一个效果,只是fixedRate的值是long型,fixedRateStr

2021-05-12 09:49:21 2701

原创 【Java】http/https/ftp路径的图片转base64

主要工具类ImageUtil.java:提供图片url转base64功能@Slf4jpublic class ImageUtil { // 图片url转base64 public static String transToBase64(String url, String charsetName) { byte[] data = getImageFromUrl(url, charsetName); return org.apache.commons.codec.binary.Base64.

2021-05-11 18:08:29 1210

原创 【Java】单元测试类

引入mavne依赖<!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-test --><dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId>

2021-05-10 18:03:56 890

原创 【Kafka】linux环境执行脚本读写

【1】消费topic数据# ip:port是kafka服务的ip和端口号./kafka-console-consumer.sh --bootstrap-server ip:port --topic topic_name示例:./kafka-console-consumer.sh --bootstrap-server 127.0.0.1:9092 --topic test_topic执行后,监听即时数据,如果有数据产生,会打印在界面上。【2】推送消息到指定topic可用以推送测试数据。#

2021-05-08 17:36:21 181

原创 【Java】自定义校验型注解

本示例是自定义的字典类型的注解,用以校验接口入参中的数据是否符合字典里面定义的值。字典数据里面设置了字典编码和字典名称。【1】注解@interface IsDictionary@Target(ElementType.FIELD)@Retention(RetentionPolicy.RUNTIME)@Document@Constraint( validateBy = IsDictionaryValidator.class)public @interface IsDictionary() {

2021-05-07 18:08:52 504

原创 【Java】Arthas工具安装

最近遇到一个问题,偶现了两三次了,想要定位却无从下手!为什么呢?主要是因为我们使用的openjdk基础镜像真的是太精简了,自带的jstack这些工具都没有!本人也是这方面经验的小白,之前没有定位过这类多线程产生的问题。唯一的方向就是使用jstack工具,最初以为这个工具可以通过yum方式安装,百度后发现jstack是jdk自带的工具,这下子想基于现有openjdk镜像搞个带jstack的新镜像就没有那么简单了。(虽然可以下载个最新的openjdk镜像使用,肯定带jstack,但是由于有四百多兆,肯定不会

2021-03-02 10:55:30 1454

原创 【Flyway】pgsql R__开头的sql

flyway R__开头的sql在每次部署时会执行一次例如:R__UPDATE_20200909.sql1 新增字段DO$do$BEGIN -- 判断要增加的字段是否存在 IF (select count(*) from information_schema.columns where table_name =[表名] and column_name =[字段名]) = 0 THEN ALTER TABLE [表名] ADD COLUMN

2020-09-09 09:56:40 870

原创 【Mybatis】model类通过注解忽略某属性

当使用的model类中需要新增一些字段仅用于程序中传参,而不需要添加到数据库表中时,可以通过添加@Transient注解使mybatis忽略它而不做对应关系。例如:/model/UserDO.java@Data@Table(name = "user")publlic class UserDO { …… /** * 表中字段 */ @Column(nam...

2020-04-27 09:43:02 3309

原创 【Java】Callable + Future实现多线程查询

1 先定义线程方法,实现Callable接口@Slf4jpublic class QueryThread implements Callable<List<QueryResult>> { private QueryParam param; private QueryService queryService; public QueryThre...

2020-04-26 18:04:46 620

原创 【异常】相同类型多Bean存在启动注入失败问题

【问题描述】引入的依赖包配置里面定义了一个RestTemplate的Bean,有个名字A自己服务已存在RestTempate的Bean,名字B服务启动的时候,报异常说我注入只能注入一个对象,但是我找到一对双胞胎,我得用哪个?【解决方法】方法一:每个注入的地方指定名称@Resource(name = "A")private RestTemplate restTemplateA;或...

2020-03-07 09:20:59 550

原创 [Python]动态生成百万sql语句

有一天,leader需要我造一个月大约300万的某演示数据,且要求每天的统计数据有规律,比如高峰低峰时段,工作日和周末数据差异等等,一天之内就要完成,开完这个会上午基本就过去了,吃完午饭的时候还没头绪咋弄呢。一条一条往数据库里面手动插入是不可能的,一条数据字段就几十个了,真干起来不得累死,还干不完,于是就想着写个插入的sql语句就好了撒。写个一条完整的插入语句会的,但是要动态变化字段这就难为我了...

2020-02-17 22:40:40 707

原创 【Exception】浏览器接收Long型数据精度丢失

问题描述后端Java某字段为Long类型,使用postman调用接口得到返回结果为3523711048553162399,浏览器接收结果为3523711048553162000。后三位变为了0,导致数据不准确。解决方法@JsonSerialize(using = ToStringSerializer.class)private Long id;在返回对象中添加以上注解,转成字符串返回...

2020-02-17 21:47:03 823

原创 【Java】List对象排序

List<Integration> integrations = new TreeList<>();integrations.add(new Integration(one.getName(), 1));integrations.add(new Integration(one.getName(), 5));integrations.add(new Integratio...

2019-10-25 13:55:43 143

原创 【pgsql】自动填入时间

"create_time" timestamp(6) DEFAULT ('now'::text)::timestamp(0) with time zone,字段设置【(‘now’::text)::timestamp(0) with time zone】之后,数据插入的时候会自动填充系统时间。...

2019-10-23 17:43:02 3475

原创 【异常】JSON.toJSON()导致的内存溢出

当转换的对象数据量过大,使用JSON.toJSON()方法导致内存溢出。具体报错如下:2019-08-05 10:42:28.403 [TxId : , SpanId : ] ERROR [http-nio-80-exec-8] c.u.f.t.c.e.GlobalExceptionHandler:151- unknown exception = Handler dispatch failed...

2019-08-05 11:11:16 10137

原创 【异常】融合List出现的泛融合问题

public static void main(String[] args) { List<InnerObject> tmp = new ArrayList<>(); tmp.add(new InnerObject(1, "xx")); tmp.add(new InnerObject(2, "yy")); Map<String, Demo&...

2019-08-02 15:41:46 132

原创 【异常】list.addAll()不能add为null的数据

List<String> lists = new ArrayList<>();lists.addAll(null);将会抛出空指针异常。

2019-07-26 09:59:46 3812

原创 【Java】替换掉RestTemplate的Feign请求

使用FeignClient比使用RestTemplate更加简洁。依赖<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-openfeign</artifactId> <ver...

2019-07-15 15:38:10 4156

原创 【Java】SpringBoot使用@Scheduled定义定时任务

1、开启扫描PS:springboot项目无需额外引入依赖在启动类Application类上面加上注解 @EnableScheduling2、定时方法上面添加注解关于@Scheduled注解的使用,详情搜索资料。这里使用fixedRate = 1000表示每隔1秒钟(1000毫秒)执行一次,且程序启动时会先执行一次,如果间隔时间比较长,比如10分钟,值就是10601000。当使用@Sc...

2019-07-15 14:13:33 725

原创 【Java后端】当前日期转换成中文汉字表示

例如,输出:二零一九年三月十九日import org.springframework.stereotype.Component;import java.util.Calendar;/** * 中文日期 * * @author xianhuang * @date 2019/03/18 14:16 * @since 1.0 */@Componentpublic class C...

2019-03-19 09:27:37 6761 5

原创 【Java后端】当数据库中存储的时间为timestamp时的应用

1 数据库存储类型postgreSQL数据库表中时间字段:名称类型time_low_limittimestamptime_up_limittimestamp因为时间在数据库表中存储的是timestamp类型,因此在java的model类中,与数据库对应的字段类型采用的Date类型。2 model 类@Table(name = &quot;class_info&quot;)...

2019-03-15 14:06:55 3899

原创 【Java后端】使用 PageHelper 进行分页

maven 依赖: &amp;lt;!-- page helper --&amp;gt; &amp;lt;dependency&amp;gt; &amp;lt;groupId&amp;gt;com.github.pagehelper&amp;lt;/groupId&amp;gt; &amp;lt;artifactId&amp;gt;pagehelper-spri

2019-03-14 17:11:47 4003

原创 【Java后端】pdf 文件生成和导出

1 pdf 文件生成生成pdf有两种方法,如下:1) 使用 wkhtmltox 工具将 html 转 pdf优点:一次安装,永久使用。便捷,生成效果好缺点:并不是所有 html 都能成功转成 pdf,至于为什么需要深度研究研究。安装去官网下载:https://wkhtmltopdf.org/downloads.html分 windows 环境 linux 环境,各自取用适合的包。...

2019-03-14 16:21:02 7638 3

原创 【Java后端】properties读取和修改

package xx.common.utils;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.IOException;import java.util.Properties;/** * properties工具类 * * @author xianhuang * @date...

2019-03-14 10:20:26 894

原创 【Python】去掉字符串前后空格的函数

# -*- coding: utf-8 -*-def trim(s): # print("in:", s) if len(s) &lt; 0: return '' # 去掉前面空格 index = 0 while index &lt; len(s): if s[index] == ' ': ...

2019-02-13 15:48:37 1658

原创 【shell】将大的图片压缩包zip拆解成小的压缩包

重要步骤1、解压压缩包到指定目录;2、从解压目录中筛选出大小过大的图片移动到别的文件,大小过大的图片手动减少大小后再处理;3、当解压目录中还有图片时,从解压后的目录中选取一定数量(比如100张)的图片移动到另外一个文件夹A;4、压缩文件夹A,若新压缩包过大,则删除压缩包,并将文件夹A中一半图片移回原来的解压目录,重新压缩文件A并重复后续动作,直到新压缩包大小满足要求;5、重复3、4步骤直...

2019-01-17 09:59:32 1614

原创 【Java后端】读取文件夹中的图片转成base64编码并写入properties文件

main方法import java.util.ArrayList;import java.util.Base64;import java.util.List;public class PicBase64Generator { // 项目在硬盘上的基础路径 private static final String PROJECT_PATH = System.getPrope...

2018-12-21 10:04:53 6318

原创 【Java后端】集合转数组

1、Set集合转数组// set集合Set&amp;lt;Integer&amp;gt; idSet = new TreeSet&amp;lt;&amp;gt;();idSet.add(data.getTypeId()); ……// 定义一个set长度的数组Integer[] ids = new Integer[idSet.size()];// set转数组,执行完毕后返回数组,且ids数组存储了set中的值id...

2018-11-22 09:54:17 1308 1

原创 【Java后端】Map使用迭代器遍历

map的entry可以通过迭代器进行遍历以及进行安全的remove操作。private void removeExist(Map&amp;lt;Integer, String&amp;gt; types, DictTypeResDTO dto) { Iterator&amp;lt;Map.Entry&amp;lt;Integer, String&amp;gt;&amp;gt; it = types.entrySet().iterato...

2018-11-22 09:37:11 16117 1

空空如也

空空如也

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

TA关注的人

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