- 博客(88)
- 收藏
- 关注
原创 MySQL分组查询后获取每组的前N条数据
MySQL分组查询后如何获取每组的前N条数据,你会吗?“分组查询”可以说是相当常见的SQL查询语句,对于MySQL数据库而言,其实现分组查询的关键字为GROUP BY,而在使用GROUP BY期间一般还会有其他的聚合函数配合使用,比如计数用的COUNT(),统计数值和用的SUM(),而本文要介绍的是另一种类型的“分组查询”,即分组查询出来后再查询出每一组的前N条数据。为了方便诸位理解,还是直接举一个实际的案例吧:存在两个数据库表,一个叫课程表course,另一个叫课程类型表course_type,这两个
2020-12-24 10:52:27 5540
原创 SQL插入与替换、插入与更新
在写SQL时,经常灵活运用一些SQL语句编写的技巧,可以大大简化程序逻辑。减少程序与数据库的交互次数,有利于数据库高可用性,同时也能显得你的SQL很牛B,让同事们眼前一亮。
2020-09-02 17:55:15 2281
原创 Docker是什么?可以用Docker做什么?
Docker是什么?Docker的思想来自于集箱,集装箱解决了什么问题?在一艘大船上,可以把货物规整的摆放起来。并且各种各样的货物被集装箱标准化了,集装箱和集装箱之间不会互相影响。那么我就不需要专门运送水果的船和专门运送化学品的船了。只要这些货物在集装箱里封装的好好的,那我就可以用一艘大船把他们都运走。docker就是类似的理念。现在都流行云计算了,云计算就好比大货轮。docker就是集装箱。1.不同的应用程序可能会有不同的应用环境,比如.net开发的网站和php开发的网站依赖的软件就不一样,如果把
2020-06-06 18:33:50 831
原创 什么是JWT?详细讲解
什么是JWTJson web token (JWT), 是为了在网络应用环境间传递声明而执行的一种基于JSON的开放标准.该token被设计为紧凑且安全的,特别适用于分布式站点的单点登录(SSO)场景。JWT的声明一般被用来在身份提供者和服务提供者间传递被认证的用户身份信息,以便于从资源服务器获取资源,也可以增加一些额外的其它业务逻辑所必须的声明信息,该token也可直接被用于认证,也可被加密。传统的session认证我们知道,http协议本身是一种无状态的协议,而这就意味着如果用户向我们的应用提供了
2020-05-14 12:33:31 12231 3
原创 消息队列RabbitMQ的基础应用(一)
在Java中使用RabbitMQ在了解RabbitMQ结合java使用之前最好了解RabbitMQ的基本构造与相关组件的概念(详情请参考我的博客文章:什么是RabbitMQ消息队列?链接:)依<dependency> <groupId>com.rabbitmq</groupId> <artifactId>amqp-client</artifactId> <version>5.8.0</version
2020-05-09 17:35:30 271
原创 SpringBoot + 虚拟线程,性能炸裂!
虚拟线程是Java19开始增加的一个特性,和Golang的携程类似,一个其它语言早就提供的、且如此实用且好用的功能,作为一个Java开发者,早就已经望眼欲穿了。
2024-07-02 17:59:13 336
原创 一个强大的分布式锁框架——Lock4j
Lock4j是一个分布式锁组件,它提供了多种不同的支持以满足不同性能和环境的需求,基于Spring AOP的声明式和编程式分布式锁,支持RedisTemplate、Redisson、Zookeeper。```![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/6b1e6f4bbbe74069936e13d53233e80b.png)### 五、简单使用```java。
2024-07-02 11:23:46 420
原创 TCP和Udp的区别是什么?
TCP 的数据大小如果大于 MSS 大小,则会在传输层进行分片,目标主机收到后,也同样在传输层组装 TCP 数据包,如果中途丢失了一个分片,只需要传输丢失的这个分片。UDP 的数据大小如果大于 MTU 大小,则会在 IP 层进行分片,目标主机收到后,在 IP 层组装完数据,接着再传给传输层。由于 UDP 面向无连接,它可以随时发送数据,再加上UDP本身的处理既简单又高效,因此经常用于:包总量较少的通信,如 DNS 、SNMP 等;UDP 是一个包一个包的发送,是有边界的,但可能会丢包和乱序。
2024-05-24 17:18:23 191
原创 什么是ClickHouse?如何使用
clickhouse数据库是大型分布式数据存储系统,由于其独特的数据存储方式(基于列式存储)以及数据存储在磁盘中(数据会被压缩),使cluckhouse的数据读取和存储速度很快。
2024-05-13 09:46:19 249 1
原创 java多线程实战1:方法内部使用多线程的两种方式
我们在开发过程中,有时会遇到一个方法内去循环执行某个任务,而每次循环执行的这个任务会耗时很大,如果循环次数又比较多的话,那么总体下来这个方式执行的时间会很长。如何解决这个问题,可以在很快的时间内完成这个方法?这个时候就要用到线程池了,使用线程池异步执行任务。
2023-12-22 11:36:12 539
原创 TensorFlow是什么
图:TensorFlow将计算表达为一个数据流图,图中的节点表示算法的操作,边表示节点之间的数据流动。在图中,节点分为两种类型:计算节点和变量节点,计算节点用于执行各种计算操作,变量节点用于存储和更新模型参数。总之,TensorFlow是一个功能强大的深度学习框架,可以用于各种机器学习任务,包括图像识别、自然语言处理、推荐系统和数据分析等。会话可以在本地机器上执行,也可以在分布式集群上执行。张量:TensorFlow使用张量表示所有的数据,张量可以是任意维度和类型的数据,例如标量、向量、矩阵等。
2023-09-04 17:00:31 903 1
原创 mysql表锁死怎么办?事务锁sql超时被锁死怎么办?
1、查询所有进程:SHOW PROCESSLIST;2、找到进程号kill掉kill 32699871、查询所有执行中的sqlselect t.*,to_seconds(now())-to_seconds(t.trx_started) idle_time from INFORMATION_SCHEMA.INNODB_TRX t2、找到状态为lock的sql的trx_mysql_thread_id并kill掉kill 32699878
2023-08-25 09:24:45 963
原创 kafka数据积压原因以及解决方案
首先我们在上面分析得出,是由于上游生产者producer发送数据过快,以及下游消费者consumer拉取数据过慢,实质上就是,生产者生产数据速度>>消费者消费数据速度。我们都知道,数据积压的直接原因,一定是系统中的某个部分出现了性能问题,来不及处理上游发送的数据,才会导致数据积压。那么我们就需要分析在使用kafka时,如何通过优化代码以及参数配置来最大程度的避免数据积压来对业务中的影响。数据积压可能是我们在编写代码处理逻辑的时候,代码质量不高,处理速度慢导致消费数据的性能低,可以优化代码。
2023-07-14 11:25:36 3130
原创 数据安全:数据库密码的加解密
我们在使用一些数据库或者其他连接工具的时候,为了保证数据安全性,希望对数据库等访问工具的密码进行加解密,比如MySQL、es、kafka等。
2023-05-08 10:47:59 1163 1
原创 定时频繁的查询es导致Too many open files 与 java.lang.OutOfMemoryError
出现这种问题是因为打开过多的句柄(或者请求链接),超出系统设定的句柄数。我这里是因为系统定时的去调用接口,由于使用线程池并发调用接口次数过多,导致超出系统设定的请求链接次数。上面的问题是句柄数不够,这个出现这种问题的原因是内存不足的造成的,可以从代码优化,以及系统调优两个方面解决。最好的是优化代码,实在不行再去系统调优。3、永久生效(需要重启)1、查看句柄限制数量。
2023-04-18 09:31:45 532
原创 超详细Linus安装maven、配置maven环境
修改settings.xml文件。如果安装了maven,删除掉。添加本地仓库地址与阿里云镜像。创建maven仓库文件夹。
2023-04-12 11:37:49 1162
原创 浅说java的xml中的foreach用法
三、当mapper中的参数是多个,都需要绑定@Param注解,此时xml中collection的值是绑定注解的参数(无论参数是数组还是集合)如果传入的是单参数且参数类型是一个array数组的时候,collection的属性值为array。如果传入的是单参数且参数类型是一个List的时候,collection属性值为list。在使用foreach的时候最关键的也是最容易出错的就是collection属性,该属性是必须指定的,但是在不同情况 下,该属性的值是不一样的,item :表示集合中的每一个元素。
2023-04-04 11:22:13 1753
原创 windows系统下的maven打包脚本
编写windows系统下的maven打包脚本:新建文本文件,后缀改为bat,将以下内容复制到文件中,将脚本文件放在需要打包的模块并列的目录中,双击运行脚本即可。需事先配置好maven环境变量M2_HOME为maven根目录。
2023-02-04 09:24:54 708
原创 UNION与UNION ALL的区别
原始数据:UNION ALL 行转列后:区别:1.对重复结果的处理:UNION会去掉重复记录,UNION ALL不会2.对排序的处理:UNION会排序,UNION ALL只是简单地将两个结果集合并3.效率方面的区别:因为UNION 会做去重和排序处理,因此效率比UNION ALL慢很多...
2022-06-08 10:28:52 858
原创 MYSQL行转列与列转行
±-----±-----+| id| name |±-----±-----+|1 | 10||1 | 20||1 | 20||2 | 20||3 | 200 ||3 | 500 |±-----±-----+6 rows in set (0.00 sec)1.以id分组,把name字段的值打印在一行,逗号分隔(默认)±-----±-------------------+| id| group_concat(name) |±-----±-------------------+|1 |
2022-06-08 09:55:18 543
原创 java集合排序
1.List<RiskUserInfoVo > vos= userInfoList.sort(new Comparator<RiskUserInfoVo>() { @Override public int compare(RiskUserInfoVo o1, RiskUserInfoVo o2) { return o2.getSeriousValue().compareTo(o1.getSeriousVa
2022-05-30 17:19:05 116
原创 统计任意时间段、近一天、近一周、近一月、近一年(12个月)的数据(折线图、柱形图、扇形图)
一、前端会传统计类型type(1,2,3),比如近一周、近一月、近一年(12个月),我们先根据type生成日期集合,这将作为X轴: List<String> xData = selectDate(type,startDate,endDate); private List<String> selectDate(String type,String startDate,String endDate){ if ("1".equals(type)){
2022-05-19 14:40:46 2197
原创 Spring拦截器整合token
https://blog.csdn.net/fuckthebugs/article/details/105775579
2022-03-18 11:20:55 211
转载 Spring拦截器整合token
适用于分布式https://blog.csdn.net/fuckthebugs/article/details/105775579
2022-03-18 11:13:39 181
转载 SpringBoot:Token登录、认证、授权
https://blog.csdn.net/fuckthebugs/article/details/105775579
2022-03-18 11:07:36 1347
原创 go 基本类型之间的转换
int转成string:string := strconv.Itoa(int)string转成int:int, err := strconv.Atoi(string)string转成int64:int64, err := strconv.ParseInt(string, 10, 64)int64转成string:string := strconv.FormatInt(int64,10)
2022-02-23 11:41:48 598
原创 Win10系统下设置Go环境变量
前言本人安装Window系统下的Go语言的相关信息如下:Go语言版本:go1.14.6安装包:go1.14.6.windows-amd64.msi安装路径:D:\Program Files\GoWin10系统下配置Go语言环境变量打开Win10下的环境变量设置界面右键我的电脑->属性->高级系统设置->环境变量。它有用户变量和系统变量。两者的区别是用户变量下配置只对当前用户有效,系统变量下配置对所有用户有效。本人建议在用户变量下配置。配置 GOROOT选择<新建&
2022-02-14 17:04:58 931
原创 MYSQL删除重复数据
delete from prc_app_permission where id not in ( select dt.id from ( select min(id) as id from prc_app_permission group by permission_name ) dt)
2022-01-04 14:02:23 582
原创 判断apk是否签名以及获取apk信息
一、判断apk是否签名如果集合apkSingers 为空,说明没有签名人,未签名。 ApkFile apkParser = new ApkFile(new File("C:/Users/kesun5/Desktop/doc/b.apk"));// String xml = apkParser.getManifestXml();// System.out.println(xml);//// ApkMeta ap
2021-11-24 09:13:13 1567 1
原创 通过读取流判断是否是apk文件
通过apk文件后缀判断文件类型是不安全的,所以需要通过读取流判断文件来行。1.引入依赖: <dependency> <groupId>net.dongliu</groupId> <artifactId>apk-parser</artifactId> <version>2.6.10</version> </dependency>
2021-11-24 09:05:43 638 3
原创 Excel生成导入SQL语句,快速创建批量
实现方案1.Excel直接导入SQL将Excel数据整理好了之后,通过SQL的导入功能直接导进数据库,但是得保证数据库字段和Excel的字段一致。2.Excel生成SQL语句第二,通过Excel来生成对应的SQL语句,直接将SQL语句复制到分析器里面执行即可,本文就说一下如何来实现这第二种办法。公式例:A2 表示 A列第二行 公式表示为 ,A2,新增=CONCATENATE("insert into users (id,code,name) values (null,'",A2,"','",
2021-11-24 08:54:07 1068
原创 查找与删除重复数据
一、查找重复记录1、查找全部重复记录Select * From 表 Where 重复字段 In (Select 重复字段 From 表 Group By 重复字段 Having Count(*)>1)2、过滤重复记录(只显示一条)Select * From HZT Where ID In (Select Max(ID) From HZT Group By Title)注:此处显示ID最大一条记录二、删除重复记录1、删除全部重复记录(慎用)Delete 表 Where 重复字段 In (
2021-11-10 09:30:02 1696
原创 springboot整合RabbitMQ设置消息过期时间、设置优先级
一、设置消息过期时间TTL主要有2种方式,如果同时指定了Message TTL和Queue TTL,则优先较小的那一个:指定条消息的过期时间。给队列设置消息过期时间,队列中的所有消息都有同样的过期时间。队列设置的方式:@Configurationpublic class DirectRabbitConfig { //队列 起名:TestDirectQueue @Bean public Queue TestDirectQueue() { // dur
2021-08-23 14:34:35 2276
转载 Redis 高并发分布式锁实现
redis 高并发分布式锁实现一般在单体应用中,如果遇到高并发可以通过 synchronized 或者 Lock进行加锁,但是现在大部分应用都是采用分布式的方式进行部署,这样像 synchronized 和 Lock 这样的锁就不适用了。这个使用我们可以使用分布式锁来实现,分布式锁的实现方式主要有:基于数据库的分布式锁基于缓存的分布式锁基于 Zookeeper 的分布式锁本次主要记录一下如果是用 redis 实现分布式锁。首先看一个示例:本例使用 springboot 结合 red
2021-08-13 13:55:32 723
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人