- 博客(34)
- 收藏
- 关注
原创 从订单明细表统计各品类销售出的商品种类数及累积销量最高的商品
思路:首先根据订单表统计每个商品的最高销量,以及每个商品类型卖出的商品种类,最后根据ROW_NUMBER() 根据商品种类分区,按照销量降序排序,最后获取销量最高的记录。下面使用MYSQL8语法,用到窗口函数,且sql_mode=only_full_group_by的模式下编写。
2023-05-22 15:22:59
1023
原创 Java实现识别发票信息
这里需要用到第三方接口,OCR识别功能,这里我用的是百度云接口,所以你需要注册百度云账号,然后生成密钥,获取权限接口!需求:对每个发票图片文件进行重命名,名称为发票号+固定信息,主要处理增值税发票。基本能识别出来,前提是发票必须清楚,识别信息也比较全面,具体可参考该接口文档。其中百度云这个识别服务每个月有免费试用次数且有限!有需要可以去了解详情。扫码或手机号码短信登陆,搜索文字识别服务。我这里只勾选一个增值税发票识别。创建完应用后直接用就行了。
2023-05-22 09:53:33
2619
原创 MYSQL8怎么查询订单信息表中最少连续3天下单的用户id?
第一步:根据用户id和日期分组,得到下单日期和用户id,然后通过 ROW_NUMBER() OVER (PARTITION BY user_id ORDER BY create_date),然后再根据user_id进行子分组,按照下单日期排序,得到连续日期,且标识序号。通过条件userId,第一个数据集日期+2,第一个数据集序号+2【这里序号最好用+2的方式,还可以用第二个数据集的序号-2,日期-2,但是序号列需要强转!MYSQL8实操练习。
2023-04-03 10:21:02
941
原创 MYSQL怎么查询X表中销量排名第X的数据?
这里我们举个例子:查询订单明细表(order _detail)中销量(下单件数)排名第二的商品id,如果不存在返回null,如果存在多个排名第二的商品则需要全部返回。【这里考虑到了销量一样的也要查出来,其他还有RANK,ROW_NUMBER,根据自己的业务场景来选择】然后再根据排序的值去筛选就好了。首先根据商品id汇总得到每个商品的总销量,然后再通过窗口函数根据商品总销量去排序.
2023-03-30 15:06:24
605
原创 Mac安装搭建Kafka
安装完Kafka时 brew它自动会安装zookeeper,因为使用kafka是需要依赖zookeeper的,也是为了方便省事。修改基本配置,下面是配置本地ip来启动kafka,这个配置文件路径根据自己系统在brew时安装的路径。启动kafka之前必须启动zookeeper,路径根据实际安装路径来就行。安装Kafka,这个命令一般都是安装文档版,我这里安装的是3.4.0。// 创建某个topic的消费者。查看kafka的所有topic。创建只有一个分区的topic。创建某个topic的生产者。
2023-03-21 11:10:59
1397
原创 JAVA通过Hutool解析CSV文件【导入即用,无需封装】
Java解析CSV方式有很多种方式【javaCSV(未更新),openCSV(apache)】,这篇文章主要是用到Hutool工具类,能快速的解析读取,不需要过多的封装。开箱即用!导入依赖1.导出到本地路径路径2.解析本地路径下的CSV文件3.Web端导入且解析CSV文件4.Web端导出CSV文件详细的API可以去看官方文档,Hutool官网:如果需求比较复杂可以尝试openCSV。
2022-12-06 15:56:43
8792
原创 MYSQL事物隔离级别
MYSQL事物隔离级别是面试经常问的,也是MYSQL中必须要了解的一个知识点,本篇文章主要理解事物隔离级别以及每种隔离级别下会发生什么问题?下面我们一起来看下。A:原子性【Atomicity】:一个事物中所有的SQL脚本要么全都执行成功,要么全都执行失败【undo log实现】。C:一致性【Consistency】:事物执行完之后,必须保证数据完整性【redo log实现】。I:隔离性【Isolation】:事物和事物之间执行不受影响,数据库引擎不同底层实现也不同【MyISAM不支持事物,InnoDB主要通
2022-12-02 14:38:00
373
原创 MYSQL“Lock wait timeout exceeded”问题分析
“Lock wait timeout exceeded” 问题分析处理首先导致锁表原因可能有以下原因:执行DML操作没有commit,再执行删除操作就会锁表。在同一事务内先后对同一条数据进行插入和更新操作。表索引设计不当,导致数据库出现死锁。长事物,阻塞DDL,继而阻塞所有同表的后续操作。
2022-11-29 14:15:47
1962
原创 Java解析Excel文件
Java解析Excel有很多方式,主流有poi,easyexcel等技术,本文使用springboot+poi技术来实现解析excel文件。其中包含解析本地文件和web端导入导出文件,且支持2003和2007及以上版本。这里简单的封装了一下,操作本地文件只针对xlsx格式文件,web端的处理包括xls类型。
2022-11-25 16:39:27
6732
原创 HttpClient下载excel获取流数据
本篇文章处理的业务场景是通过java代码调用下载excel的链接,然后根据返回的流,解析获取流里的数据,也就是下载的excel数据(其他类型文件思路一致)。调用http链接用的是httpclient包,解析excel用的是poi。
2022-11-18 14:53:56
1527
原创 Java8 Stream实用操作
在工作中经常碰到类似的需求,不太会数据库操作,或者不方便用sql来处理,那java8的stream流处理最合适了!
2022-06-16 10:06:25
3231
原创 Mysql 优化limit查询【实战可用】
Mysql 优化limit查询【实战可用】 最近在开发中遇到一个问题,当一个表中的数据量非常大的时候。然后用limit查询时 效率会随着数据量的增长而变慢,他们的关系成正比。 下面介绍几种优化方式,让你的分页查询快起来!且不仅仅是分页查询。下面是一张通过OCR识别水表信息的表,每天都有成千上万张图片进行识别。表结构:CREATE TABLE `ocr_image_recognition` ( `id` int(20) NOT NULL AUTO_INCREMENT, `STUBN
2021-09-30 11:14:43
333
原创 Java堆结构
Java堆结构堆的特点堆:堆是一种树,由它实现的优先级队列的插入和删除的时间复杂度都是O(logn),用堆实现的优先级队列虽然和数组实现相比较删除慢了些,但插入的时间快的多了。当速度很重要且有很多插入操作时,可以选择堆来实现优先级队列。Java的堆和数据结构堆:Java的堆是程序员用new能得到的计算机内存的可用部分。而数据结构的堆是一种特殊的二叉树。堆是一个完全二叉树。什么叫完全二叉树?就是除了堆的最后一层节点外,其他层节点都是满的,完全二叉树如此有规律,以至于我们选择使用数组表示完全二叉树,而
2021-09-27 10:55:04
754
原创 Java栈结构
Java栈结构概念典型的栈结构如下图所示:栈结构只能在一端操作,该操作端叫做栈顶,另一端叫做栈底。栈结构按照“后进先出”(Last In First Out, LIFO)的方式处理结点数据。栈的特点:其实栈结构是一种受限制的线性数据结构。其限制是仅允许在表的一端进行插入和删除运算。这一端被称为栈顶,相对地,把另一端称为栈底。向一个栈插入新元素又称作进栈、入栈或压栈,它是把新元素放到栈顶元素的上面,使之成为新的栈顶元素;从一个栈删除元素又称作出栈或退栈,它是把栈顶元素删除掉,使其相
2021-09-18 16:52:35
3202
原创 Java链表结构
Java链表结构链表是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。链表在日常开发中可能没有接触到,但其实很多数据类型底层都是链表结构,最常见的就是java集合,比如linkedList,HashMap等等。链表优点在于,删除、新增快,只要操作节点指向即可。缺点就在于查找效率慢,因为要遍历每一个节点,不向数组一样可以通过索引直接访问。了解链表结构//链表类public class ListNode { int val; // value
2021-09-18 15:53:09
683
原创 CountDownLatch使用场景
多线程处理业务最近在网上看到许多的业务场景,明明可以高效率的完成业务,但还是有很多人习惯了老方式处理业务,导致处理时间过慢,响应时间过慢,用户体验变差。这篇文章,来介绍一下使用多线程来处理业务。分析问题首先来描述一个业务场景:某系统需要校对数据,校对订单和库存信息,校对之后存库,然后存库再到页面显示。总体流程为:先查询订单记录,然后在查询库存的扣减记录,然后对比订单和库存扣减记录,然后将校对的结果信息保存到数据校对信息表中,看下图。让我们看下平常代码处理的一个逻辑,并且大家可以想一下有什么诟病
2021-09-08 15:50:33
947
2
原创 Mysql 如何保证不插入重复列
Mysql 避免插入重复数据在日常开发中,肯定会碰到很多业务会有批量插入值,数据源可能是其他数据库的表,也可能是Excel。那么问题来了,是不是每次插入之前都要查一遍,看看重不重复,在代码里筛选一下数据,重复的就过滤掉呢?向大数据数据库中插入值时,还要判断插入是否重复,然后插入。那么如何提高效率呢?看来这个问题不止我一个人苦恼过。解决的办法有很多种,不同的场景解决方案也不一样,数据量很小的情况下,怎么搞都行,但是数据量很大的时候,这就不是一个简单的问题了。几百万的数据,不可能查出来,再做去重处理,
2021-09-08 10:09:31
677
原创 看看常用数据库之间的分页SQL到底有何区别?
常用数据库的分页SQL区别这一篇主要讲oracle,mysql,sql server之间的分页sql区别。不少的开发人员在工作中,或者在学习中都只会选一种数据库去使用,来学习。但是每个数据库的语法稍有不同,最具有代表的就是查询分页,因为它在工作当中必不可少。但每个数据库的分页语法都不太一样。接下来我们一起看看这是三个数据库之间的分页语法有何不同。Oracle 分页下面是查询数据在数据库中根据条件赛选之后的 10-30条数据 ,oracle分页也可以有其他写法,这里只介绍一种。SELECT * F
2021-08-25 09:51:37
306
转载 MYSQL从哪几个方面优化sql?
MYSQ优化这个问题经常在工作中会遇到,并且在面试的时候,也是面试官们的青睐的问题。接下来这一篇文章会简单的介绍怎么去优化数据库,从哪些方面入手。这些解决方案在工作中和面试非常有用!
2021-08-23 10:40:21
939
原创 SpringBoot项目处理emoji表情到mysql
Springboot项目处理Emoji表情到Mysql emoji表情现在是日常生活中必不可少的存在了,首先我们先了解一下为什么emoji表情不能像普通的字符处理?emoji 其实是表情符号,来自日语词汇“絵文字”(假名为“えもじ”,读音即 emoji)。 最早由栗田穰崇(Shigetaka Kurita)创作,并在日本网络及手机用户中流行。 自苹果公司发布的 iOS 5 输入法中加入了emoji 后,这种表情符号开始席卷全球。目前 emoji 已被大多数现代计算机系统所兼容的 Unicode
2021-07-28 14:17:08
875
原创 在Spring中使用事务的两种方式
Spring使用声明式事务1.首先导入tx和aop的命名空间<!--命名空间--> xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx"http://www.springframework.org/schema/aophttp://www.springframework.org/schema/aop/spring-aop.x
2021-07-27 17:11:10
897
原创 Linux中查看日志常用命令
在Linux中使用命令查看日志信息 在日常操作linux中,我们经常需要查看日志信息,来排查我们程序出现的各种bug。或者通过日志来判断程序是否正常执行,下面就介绍几种查看日志的命令已经应用场景。查看日志命令和一些应用场景catcat 可以根据过滤条件 ,去筛选日志信息,也可以直接查看某个文件的信息,tac是倒序查看。# 查看整个日志文件信息cat nohup.out# 根据某些关键字来筛选日志信息cat -n nohup.out |grep "error" # 显示jeck及前5
2021-07-22 15:27:01
2237
原创 SpringBoot整合阿里云实现上传文件
springboot简单整合阿里云oss实现文件上传1.注册阿里云oss 账号官网地址2.创建bucket3.导入依赖<!--aliyunOSS 依赖--><dependency> <groupId>com.aliyun.oss</groupId> <artifactId>aliyun-sdk-oss</artifactId></dependency>4.配置application 配置文
2021-07-22 09:57:55
532
2
原创 Linux部署JAVA环境
让配置文件立即生效:source /etc/profile。文章用到的是linux系统,centen OS7系列版本。然后可自行编写java程序!在文件的末尾 添加配置信息。命令 ,出现提示即可。命令查看是否安装成功。这里选择的是jdk8。
2021-07-22 09:47:39
243
1
原创 Java解析JSON文件
这篇文章主要讲讲 通过java去解析不同地方的json文件通常我们需要解析本地的json文件或者服务器上的json文件。我们用来解析json格式的jar包有很多,jackson,fastjson,gson都行。但本人喜欢用fastjson。所以本篇都是以fastjson来解析json文件。1.解析本地json文件随便把一个json文件存储在本地的一个文件夹下,然后通过文件流将json文件内容读取出来。然后转换成String,最后转json对象,然后再解析,获取自己想要的数据。首先我们这个json文
2021-07-15 11:35:58
40169
6
原创 JavaWeb中图片和视频处理几种方式
JavaWeb中图片和视频处理的几种方式1.通过tomcat进行路径映射把图片和视频存在本地或者服务器上 然后通过tomcat去映射路径 启动tomcat服务器后 浏览器就可以直接访问具体步骤:1.首先下载一个tomcat服务器:https://tomcat.apache.org/download-90.cgi2.修改tomcat配置文件 找到你安装的tomcat目录:这里我安装在D盘D:\dev\apache-tomcat-9.0.48\conf\server.xml 中添加tomcat的映
2021-07-15 11:04:14
1881
原创 SpringBoot使用WebSocket实现多人聊天
SpringBoot 使用WebSocket实现消息对话1.了解一下WebSocket是什么 WebSocket 是 HTML5 开始提供的一种在单个 TCP 连接上进行全双工通讯的协议。而且只要建立一次连接即可。简单来说 他缩减了TCP协议的步骤 我们都知道 TCP要通过三次握手四次挥手,但ws只要建立一次 即可通信。然后我们这次使用的是SpirngBoot搭建ws服务 实现多人之间的通信。2.导入依赖<!--ws发送的是json字符串 所以用来解析--><dep
2021-07-09 09:10:46
871
原创 使用JavaCV把图片合成视频(实用)
用Javacv把图片合成视频这是我最近在做的一个小需求 就是后台把多张照片生成一个视频 并且展示到前端。一般处理图片视频有两种方式 第一种使用OpenCV 底层c开发的,效率非常快,c和python都会使用这款插件。但是Java中使用也可以 只不过要去官网下载jar 并且依赖dll文件 才可以正常使用。在Linux中更难受 所以在Java中不推荐使用OpenCV。我们这次主要说第二种 使用JavaCV来处理这个需求,其实他也是封装了opencv ,只不过加了java中的一些接口…废话不过说。首先我
2021-07-06 17:29:13
4856
3
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人