java技术贴
文章平均质量分 51
记录java开发中的一些技术难点及问题。
一缕82年的清风
这个作者很懒,什么都没留下…
展开
-
多线程(四) | 聊聊Callable和Future
hello, 大家好,又见面了。通过前面几篇文章,我相信大家应该对于如何使用多线程执行任务应该都有了一定的了解。今天我们来讲一讲Callable和Future。我们之前的线程任务都是使用的Runnable接口,这个任务最终的体现是写在里面 run方法中的内容,大家要这个run() 方法是没有返回值的,也就代表这我们使用Runnable 作为线程任务的时候是没有返回值的。原创 2022-10-24 14:58:27 · 1244 阅读 · 1 评论 -
猿创征文|从mysql 到kingbase(人大金仓)
本文主要介绍SpringCloud的应用从mysql数据库迁移到kingbase人大金仓数据库的流程及问题解决方案。原创 2022-10-11 09:25:41 · 8102 阅读 · 3 评论 -
SpringBoot集成easyExcel实现按模板导出
SpringBoot如何集成easyExcel实现按照模板进行导出原创 2022-07-27 15:51:18 · 2116 阅读 · 0 评论 -
mysql字段的分割截取功能(模拟split)
大家好,又见面了。每次见面就说明我又解决了一个疑难杂症。今天这个问题更狠一些,又让我的sql能力有了进一步的提高。简单说我我最近为什么会有这么多的sql问题,主要原因就是我们从数据中台的hive库同步数据,而他们库里的数据实在是脏的过分,有各种你想象不到数据,而我们也推不动不了他们,没把办法就只能通过sql自己处理。接下来看看今天的奇葩问题。我们同步过来的数据内容如下。最可怕就是在类型的前面多了一些数字加顿号。这些内容对于我来讲是完全没有意义的,我需要的只是顿号后面的内容。那么我应该怎么处理得到原创 2021-05-17 09:13:27 · 4476 阅读 · 0 评论 -
mysql 拼接json
最近是和mysql杠上了。由于需要将公司数据中台中的数据同步到我们自己的mysql库中,并且使用的是将sql结果集全量同步过来的方式,就促使我在用平台的时候,接触到了大量的sql使用场景。今天遇到的是如何使用sql拼写json, 和大家分享一下。这里说明下,如果大家的业务本身可以通过api的方式来实现,那么就没必要在sql来实现了。我们的业务需求是必须用sql实现,所以才这么搞的,你们都不知道,这段时间我是有多么怀念java语言,怀念在idea上纵横驰骋的日子。。。好了闲话少说,我们直接步入正题。先原创 2021-05-11 09:59:29 · 1613 阅读 · 0 评论 -
mysql计算增长率
好久没更新了,最近实在是太忙了,基本上天天和sql打交道。恰巧今天遇到了一个问题,在这里和大家分享一下,就是使用sql计算增长率的问题。我数据库中的原始数据是这样的:2016 100 2017 200 2018 140 2019 300 2020 150 2021 180 但是我们前端需要展现的是一条折现,显示的是增长率,或者叫同比增长, 这个大家应该都知道吧,公式如下: (后一年数据 - 前一年数据) / 前一年的数据。 这个一开始...原创 2021-05-07 20:29:49 · 4039 阅读 · 4 评论 -
idea集成tomcat并解决控制台乱码问题
在使用idea开发maven项目的时候,有时候我们没有通过tomcat插件的方式运行项目,那就需要我们自己在idea中集成tomcat,然后将tomcat打成war包,使用tomcat来运行。那么接下来给大家分享一下步骤,亲测可用。1. 下载tomcat: 可以去tomcat的官网上下载: 地址为: https://tomcat.apache.org/download-80.cgi...原创 2019-05-14 09:43:51 · 4821 阅读 · 9 评论 -
springboot yml配置文件中换行问题
我们在使用springboot开发项目的时候,一般都是使用yml作为配置文件,简洁方便,但是有时候由于我们的配置文件中的内容比较长,比如想要存储一个私钥,这时候使用yml存的时候,有可能出现得到的字符串要么就是有空格,要么就是有换行,那么应该如何解决这个问题呢?很简单: 在yml中在每个需要换行的末尾 加上一个 \ 同时要注意,把整个字符串用双引号括起来接下...原创 2019-09-10 10:56:58 · 9761 阅读 · 1 评论 -
mybatis-plus使用distinct
distinct是sql中的去重语法,有时候我想在mybatis-plus中使用distinct 该怎么办呢?给出一个去重加统计的案例,供大家参考:int userCount = logRecordService.count(new QueryWrapper<LogRecordDO>().select("DISTINCT user_id").lambda().eq(LogRecordDO::getProjectId, s.getId()));解析成的sql:SELECT CO原创 2021-03-11 11:07:44 · 31057 阅读 · 0 评论 -
springboot解决跨域问题的方式
由于目前多数的项目都是采用前后端分离的设计方式,所以不可避免的就要在后端系统上设置跨域配置,否则前端调用接口时就很容易报跨域的错误,这里总结两种springboot的跨域配置方式方式一: 采用过滤器:import org.springframework.core.annotation.Order;import org.springframework.stereotype.Component;import javax.servlet.*;import javax.servlet.annota原创 2021-03-08 15:09:15 · 668 阅读 · 1 评论 -
mybatis-plus实现对创建时间和更新时间的自动填充
我们在项目的开发当中,基本上没张表里都有创建时间和更新时间,而且我们每次在新增或修改数据的时候,也都要把这两个时间更新成当前时间,当然我们也可以在数据库层面设置更新时更新,否则就只能在代码中出现很多重复的如下代码:xxx.setCreateTime(new Date());xxx.setUpdateTime(new Date());而mybatis-plus给我们提供一种方式,可以自动帮我们更新这两个字段,在写业务逻辑的时候就不用去关注类似上面这种重复的代码,一劳永逸,但是要注意的是,必须字段名原创 2021-01-27 09:59:11 · 4349 阅读 · 2 评论 -
Mybatis-plus实现在DAO层面对敏感数据的加解密
日常我们在存储数据的时候,经常会碰到一些敏感性的数据,比如用户的身份证号和手机号等。这些数据一般是不允许我们在数据库中做明文存储的,这就需要我们在存储字段的时候,对这些字段做加密操作,同时在读取出来的时候,也要对相应字段做解密操作。这些操作如果我们在service层做处理,可能需要针对各个表的对应数据做解析,这时候代码就会相对很多,也很乱。而这种操作也非常类似于拦截器的操作。我们对于请求做拦截,然后实现相应的操作。而mybatis-plus也提供了针对性的拦截器,我们可以通过扩展拦截器来实现这样的需求。原创 2021-01-26 10:08:34 · 2568 阅读 · 5 评论 -
完美解决idea2020一直indexing,无法操作的问题
hello,大家好,2021年的第一篇文章,希望疫情早日过去,大家早日恢复正常生活。今天主要分享一下在使用idea 2020.3版本开发maven项目的时候,一直出现有效件index, 有时候是scaning indexing, 有时候是update indexing, indexing的时候,idea基本上就没办法操作了,连跳入到类或方法里都跳不了。不厌其烦。于是开始在网上找解决方法: 得到的90%及以上的结果,都是让我点击: File-invalid cache/Restart, ,简直了,看.原创 2021-01-13 09:53:44 · 38771 阅读 · 28 评论 -
springboot使用poi实现Excel模板的下载功能
今天做个项目,要求下载exel模板,然后填写数据,在上传,是通过poi实现的,这里给出下载excel模板的实现方案。首先将excel模板放到resource的根目录下,然后提供下载接口,如下:@ApiOperation("下载导入模板") @GetMapping("/downloadExcel") public void download(HttpServletResponse response) { try { InputStream fis = Thread.currentThr原创 2020-12-02 14:52:33 · 1968 阅读 · 0 评论 -
springboot跨域过滤器与swagger拦截器冲突的解决方案
最近在做一个项目,有这样的使用场景,首先是前后端分离,联调的时候出现了跨域问题。所以添加了一个处理跨域的拦截器。代码如下:@Order(1)@Component@WebFilter(urlPatterns = "/*", filterName = "cooCorsFilter")public class CooCorsFilter implements Filter { String ORIGIN = "Origin"; @Override public void i原创 2020-12-02 14:42:12 · 4558 阅读 · 6 评论 -
spring类中给静态变量赋值
大家在用spring读取配置文件中的数据的时候,一定用过@Value这个注解。但有时候如果我们想要给静态变量赋值发现就不管用了,给静态变量赋值,要把@Value注解放到静态变量的set方法上。最近的项目有这样一个需求,就是类中有几个静态变量,初始化的时候,他们的值需要读取一个配置文件,获取一个code,然后用这个code拼接而成。 这个code不是静态的变量,怎么实现的呢,代码如下: @Value("${projectCode}") private String proj..原创 2020-10-10 09:23:23 · 1382 阅读 · 0 评论 -
xxl-job通过代码的方式动态添加任务,修改任务,执行任务,停止任务等
Xxl-job 是目前比较主流的轻量级定时任务框架,该框架以相对简单的使用方式,灵活的配置,和可读性强的源码 等优势,深得广大开发者的喜欢。让我们的定时任务实现起来变得简单。具体的使用方法这里就不介绍了,想了解的可以直接访问官网:https://www.xuxueli.com/xxl-job/今天我们主要解决一下使用xxl-job中的一个痛点,就是动态创建任务。使用过xxl-job的朋友们都知道,xxl-job给我们提供一个管理后台,我们可以在管理后台上,配置执行器,配置任务,管理任务。如下图。这种原创 2020-09-01 16:02:14 · 35722 阅读 · 14 评论 -
springboot集成elasticsearch7实现全文检索及分页
springboot集成elasticsearch7实现全文检索及分页elasticsearch系列文章前面已经更新过三篇(https://blog.csdn.net/lsqingfeng/category_10219329.html)(建议先看下这三篇文章),分别讲解了elasticsearch7.2的安装,和springboot的集成以及简单的使用。前面都是通过demo的方式,主要讲解了他的一下简单使用,最近已经将es成功应用到了项目当中,本篇文章主要系统的介绍一下到底在项目中该如何使用es.一.原创 2020-07-27 20:29:15 · 9558 阅读 · 17 评论