- 博客(475)
- 资源 (19)
- 收藏
- 关注
原创 【数据库】MySQL的卸载
【前言】MySQL的卸载是个很头疼的问题,我们常常会因为卸载不干净导致重新安装无法进行。MySQL的卸载无形中浪费了我们很多宝贵的时间,下面是我卸载的全过程、感觉还是挺实用的。第一步:打开控制面板、找到MySQL,将其卸载。第二步:删除安装目录下的的my.ini文件及所有文件。第三步:Windows +R 运行“regedit”文件,打开注册表编辑器。1、
2016-05-28 22:48:20 1696 6
原创 没有伞的孩子必须努力奔跑!
想想自己也不小了,终将会迈入社会。也许这一刻来的比预想的稍早一些,但这是我们必须经历的!一个人如果没有自己的思想,那么这个人可能永远也不会长大。因为我们不可能永远生活在别人的臂膀下。一个有想法的人不一定能够成功,但我坚信一个有所作为的人必定是有思想的人(对各种事情有自己独特的见解)。当踏出校园的那一刻,我们也曾感到我们在这个社会上是如此渺小的一部分。所有的事情都得自己解决,社会
2015-10-15 15:44:30 3132 38
转载 13 秒插入 30 万条数据,这才是批量插入正确的姿势!
使用了 MyBatis 的批处理操作,将每 1000 条数据放在一个批次中插入,能够较为有效地提高插入速度。此外,还需要在配置文件中设置合理的连接池和数据库的参数,以获得更好的性能。如果批处理大小太小,插入操作的频率将很高,而如果批处理大小太大,可能会导致内存占用过高。这有助于控制内存占用,并确保插入操作平稳进行。总的来说,选择适当的批处理大小和等待时间可以帮助您平稳地进行插入操作,避免出现内存占用过高等问题。可以考虑使用一些内存优化的技巧,例如使用内存数据库或使用游标方式插入数据,以减少内存占用。
2024-03-19 13:50:41 21
转载 40 个 SpringBoot 常用注解:让生产力爆表!
特别的,@ResponseBody注解只能用在被@Controller注解标记的类中。@PutMapping注解用于处理HTTP PUT请求,并将请求映射到具体的处理方法中,@PutMapping是一个组合注解,相当于是@RequestMapping(method=HttpMethod.PUT)的快捷方式。@Repository注解也是@Component注解的延伸,与@Component注解一样,被此注解标注的类会被Spring自动管理起来,@Repository注解用于标注DAO层的数据持久化类。
2024-03-19 13:43:22 10
转载 谁再用 @Async 创建线程以后就不用来了!!
一旦采用了这样的组合,最大线程数就会形同虚设,因为超出8个线程的任务,将全部会被放到无界队列里。明眼人一看,这种使用new线程的处理方式将会是非常可怕的。SimpleAsyncTaskExecutor类设计的非常操蛋,因为它每执行一次,都会创建一个单独的线程,根本没有共用线程池。说这话的同学,一定是能力比较强,或者Review的代码比较少,没有经过猪队友的洗礼。这个类的设计,使得任务的执行变的非常的不可控。注解,因为这种涉及到多线程的东西,即使是自己去创建线程,也是心怀敬畏,唯恐扰了操作系统的安宁。
2024-03-08 11:18:37 20
原创 多年以后,PageHelper 又深深给我上了一课!
虽然PageHelper给我带来一些困扰,耗费了一定的时间,但是定位问题的过程中,也学习了mybatis和pagehepler的实现方式,对于热爱源码阅读的同学来说还是有一定的提升的。,但是没有执行对应的sql,那么就表明,当前线程ThreadLocal被设置了分页参数,可是没有被使用,当下一个使用此线程的请求来时,就会出现问题。假设线程1持有没有被清除的page参数,不断调用同一个方法,后面两个请求使用的是线程2和线程3没有问题,再一个请求轮到线程1了,此时就会出现问题了。
2024-02-20 15:20:43 978
转载 京东开源,牛逼哄哄的 JD-hotkey 到底有多强悍?
对任意突发性的无法预先感知的热点请求,包括并不限于热点数据(如突发大量请求同一个商品)、热用户(如爬虫、刷子)、热接口(突发海量请求同一个接口)等,进行毫秒级精准探测到。然后对这些热数据、热用户等,推送到该应用部署的所有机器JVM内存中,以大幅减轻对后端数据存储层的冲击,并可以由客户端决定如何使用这些热key(譬如对热商品做本地缓存、对热用户进行拒绝访问、对热接口进行熔断或返回默认值)。这些热key在整个应用集群内保持一致性。核心功能:热数据探测并推送至集群各个服务器。适用场景:
2024-02-20 14:09:55 38
转载 数据脱敏的 3 种常见方案,好用到爆!
数据脱敏插件,目前支持地址脱敏、银行卡号脱敏、中文姓名脱敏、固话脱敏、身份证号脱敏、手机号脱敏、密码脱敏 一个是正则脱敏、另外一个根据显示长度脱敏,默认是正则脱敏,可以根据自己的需要配置自己的规则。mybatisplus 的新作,可以测试使用,生产需要收费。根据定义的策略类型,对数据进行脱敏,当然策略可以自定义。User,注解标识脱敏字段,及选用脱敏策略。4、配置类,自定义脱敏策略。2.JAVA数据脱敏实现。2.JAVA数据脱敏实现。1.SQL数据脱敏实现。1.SQL数据脱敏实现。
2024-01-23 13:48:10 43
转载 Springboot项目的接口防刷
说明:使用了注解的方式进行对接口防刷的功能,非常高大上,本文章仅供参考。一,技术要点:springboot的基本知识,redis基本操作,
2024-01-10 17:08:06 50
转载 数据库死锁排查思路分享(纠正篇)
大家好,我是田螺。昨天发了一篇死锁思路排查的文章,发现我举的代码例子,跟实际的业务场景有一点出入。因为我个人做事情是比较严谨的,所以今天纠正一下,再发一次。这篇文章,主要给大家讲讲数据库死锁的排查思路。死锁现场排查思路sql模拟死锁解决方案本文这个例子呢,是我模拟的一个案例出来,主要就是给大家分享死锁的排查思路。希望对大家有帮助哈。
2023-12-25 10:49:29 138
原创 Lambda表达式写代码,开发速度提高了10倍!
日常开发中,我们很多时候需要用到Java 8的Lambda表达式,它允许把函数作为一个方法的参数,让我们的代码更优雅、更简洁。所以整理了一波工作中,我常用的,有哪些Lambda表达式。看完一定会有帮助的。
2023-12-25 10:38:37 419
转载 阿里终面:10亿数据如何快速插入MySQL?
要首先确认约束条件,才能设计方案。确定面试官主要想问的方向,例如1T文件如何切割为小文件,虽是难点,然而可能不是面试官想考察的问题。从数据规模看,需要分库分表,大致确定分表的规模。从单库的写入瓶颈分析,判断需要进行分库。考虑到磁盘对并发写的支持力度不同,同一个库多个表写入的并发需要限制。并且支持动态调整,方便在线上环境调试出最优值。MySQL innodb、myisam 存储引擎对写入性能支持不同,也要在线上对比验证数据库批量插入的最佳阈值需要反复测试得出。
2023-12-01 13:54:18 119
原创 MyBatis Generator 插件 详解自动生成代码
MyBatis Generator(MBG)是MyBatis和iBATIS的代码生成器。可以生成简单CRUD操作的XML配置文件、Mapper文件(DAO接口)、实体类。实际开发中能够有效减少程序员的工作量,甚至不用程序员手动写sql。它将为所有版本的MyBatis以及版本2.2.0之后的iBATIS版本生成代码。它将内省数据库表(或许多表),并将生成可用于访问表的工件。这减少了设置对象和配置文件以与数据库表交互的初始麻烦。
2023-11-21 17:57:25 618
原创 分布式事务seata的使用
Seata 是一款开源的分布式事务解决方案,致力于提供高性能和简单易用的分布式事务服务。Seata 将为用户提供了 AT、TCC、SAGA 和 XA 事务模式,为用户打造一站式的分布式解决方案。
2023-11-17 17:52:01 228
转载 安利一个好用的IDEA插件 object-helper-plugin
因为它很早之前就停止维护了,新版本IDEA无法使用该插件,所以自己参考它的交互模式,基于新版本API开发了初版。File->settings->Tools->Object Helper 即可进入插件的配置页面。中提出宝贵意见,也可以联系我成为一名插件开发者,共同完善插件的功能。插件是一个日常开发工具集插件,提供丰富的功能,最开始是基于。插件市场搜索 “ObjectHelper”插件不断迭代,提供着我们的开发效率。就可以自动生成对象拷贝的代码。根据日常开发中的痛点,
2023-11-16 16:19:05 119
转载 Spring Boot 实现限流注解
***//*** 限流的 key,主要是指前缀* @return*//*** 在时间窗内的限流次数* @return*//*** 限流类型* @return*//*** 限流时间窗* @return*/
2023-11-01 13:56:49 68
转载 面试官:一台服务器最大能支持多少条 TCP 连接?问倒一大片。。。
总用户规模预计是1亿。【情况三 】、如果一台client仅有一个IP,server端也仅有一个IP但是server端启动多个程序,每个程序监听一个端口的情况下(比如server端启动了m个程序,监听了m个不同端口),一台client机器最大能建立的连接数量为:65535 * m。因为目标IP和端口固定,有 n 个源IP,四元组中可变化的就是【源端口】+ 【源IP】,【源端口】的可用范围又是【0 ~ 65535】,所以一个IP最大能建立65535个连接,那么n个IP最大就能建立 n * 65535个连接了。
2023-10-31 10:45:06 104
转载 自从学会 Arthas,日常开发效率直接起飞!!
比如我们在生产环境上一般是不会打印DEBUG级别的日志的,当我们在线上排查问题时可以临时开启DEBUG级别的日志,帮助我们排查问题,下面介绍下如何操作。查看 JVM 已加载的类信息,Search-Class的简写,搜索出所有已经加载到 JVM 中的类信息。查看已加载类的方法信息,Search-Method的简写,搜索出所有已经加载的类的方法信息。启动成功后,选择当前需要诊断的 Java 程序的序列号,这里是1,就可以开始诊断了;查看当前线程信息,查看线程的堆栈,可以找出当前最占 CPU 的线程。
2023-10-30 15:44:37 53
转载 阿里终面:10亿数据如何快速插入MySQL?
但如果是HDD的话,虽然顺序读写会有非常高的表现,但HDD无法应对并发写入,例如每个库10张表,假设10张表在并发写入,每张表虽然是顺序写入,由于多个表的存储位置不同,HDD只有1个磁头,不支持并发写,只能重新寻道,耗时将大大增加,失去顺序读写的高性能。回到SSD的场景,不同SSD厂商的写入能力不同,对于并发写入的能力也不同,有的支持500M/s,有的支持1G/s读写,有的支持8个并发,有的支持4个并发。使用主节点轮训任务,可以减少任务的争抢,通过kafka发布消息,接收到消息的进程处理任务。
2023-10-30 09:19:57 49
转载 Spring Boot 接口一个 JSON 字符串用两个对象去接收,这能行吗?
这个方法核心的部分就是遍历系统中的所有 HttpMessageConverter,然后挨个去检查,看哪个 HttpMessageConverter 可以处理当前参数,如果能够处理(canRead 方法返回 true),那么就去检查当前请求体中是否有内容(message.hasBody),如果有,那么就调用 genericConverter.read 方法进行处理,这个方法内部实际上就是 JSON 的转换逻辑了,常规的 JSON 操作,就和 SpringMVC 没有关系了,我们这里就不展开了。
2023-10-23 15:57:28 303
原创 零宽空格引发的问题
简单理解就是这个字符正常情况下肉眼不可见,但是它确实存在,所以手输的 aaa 匹配不上存在数据库里面的 aaa,因为数据库的aaa夹了看不见的"内鬼"啊!理论上这个概率比较低,因为密码够复杂,长度必须为 18 位,且必须包含字母大小写、数字和特殊符号,但是确实是有这个可能,所以为啥不能用手机号当登录账号呢?看着报错,肯定就是 user 没找到呗,那么我自己输入了一遍账号和密码,确认没输错,于是就怀疑起密码,难道是邮寄发送的密码和数据库实际存储的不一样?好吧,懂了,破案了,怪不得数据没匹配上!
2023-10-17 18:10:15 119
原创 Spring Boot + Disruptor = 王炸!!
Disruptor 是英国外汇交易公司LMAX开发的一个高性能队列,研发的初衷是解决内存队列的延迟问题(在性能测试中发现竟然与I/O操作处于同样的数量级)。基于 Disruptor 开发的系统单线程能支撑每秒 600 万订单,2010 年在 QCon 演讲后,获得了业界关注。Disruptor是一个开源的Java框架,它被设计用于在生产者—消费者(producer-consumer problem,简称PCP)问题上获得尽量高的吞吐量(TPS)和尽量低的延迟。
2023-10-17 09:43:37 78
转载 Java源码阅读技巧
当我们在读完一个类的代码的时候,一定要总结这个类的职责,明白这个类存在的意义。一般情况下一个类核心职责只有一个,遵循单一职责的设计原则。举个例子,在RocketMQ中有一个类MQClientAPIImpl。
2023-10-16 16:47:33 267
转载 【面试】什么是Mysql索引合优化index_merge?
在使用 explain 命令分析 SQL 执行情况的时候,type列会描述了表如何被连接,这个列的内容直接反映了 SQL 执行的效率。当里面的内容展示为时表示使用了索引合并优化,在这种情况下输出行中的key列包含具体使用的索引。MySQL 的索引合并优化是一种查询优化技术,它利用多个索引来加速查询的执行。当一个查询中包含多个条件,并且这些条件分别适用于不同的索引时,MySQL 可以将这些索引合并起来使用,减少了回表的次数,以加速查询的执行。
2023-09-13 15:32:26 172
原创 Java 中“1000==1000”为false,而”100==100“为true?
这就是它有趣的地方了。如果你看去看 Integer.java 类,你会发现有一个内部私有类,IntegerCache.java,它缓存了从-128到127之间的所有的整数对象。基本知识:我们知道,如果两个引用指向同一个对象,用==表示它们是相等的。如果两个引用指向不同的对象,用==表示它们是不相等的,即使它们的内容相同。合乎逻辑的理由是,在此范围内的“小”整数使用率比大整数要高,因此,使用相同的底层对象是有价值的,可以减少潜在的内存占用。所以事情就成了,所有的小整数在内部缓存,然后当我们声明类似——
2023-09-13 15:05:49 342
原创 一款 IDEA 插件帮你优雅转化 DTO、VO、BO、PO、DO
转自:码猿技术专栏POJO 的定义是无规则简单的对象,在日常的代码分层中 pojo 会被分为VO、BO、 PO、 DTO。
2023-09-11 11:43:47 124
转载 【面试】MySQL行锁和表锁的含义及区别
在MySQL的InnoDB引擎支持行锁,与Oracle不同,MySQL的行锁是通过索引加载的,也就是说,行锁是加在索引响应的行上的,要是对应的SQL语句没有走索引,则会全表扫描,行锁则无法实现,取而代之的是表锁,此时其它事务无法对当前表进行更新或插入操作。如果用户A在进行了上述操作后,事务还未提交,则B无法对2~6之间的记录进行更新或插入记录,会阻塞,当A将事务提交后,B的更新操作会执行。对MyISAM表的写操作,会阻塞其它进程对同一表的读和写操作,只有当写锁释放后,才会执行其它进程的读写操作。
2023-09-05 17:21:53 43
原创 MyBatis 一个简单配置搞定加密、解密,不能太方便了~!TypeHandler
在我们数据库中有些时候会保存一些用户的敏感信息,比如:手机号、银行卡等信息,如果这些信息以明文的方式保存,那么是不安全的。我们有一张客户表customer,里面有客户手机号(phone)和客户地址(address)等字段,其中客户手机号(phone)是需要加密保存到数据库中的。从测试结果中可知,添加数据时,需要加密的数据(phone)在数据库中已经加密了,在查询的时候,加密的数据已经自动解密了。1、在添加客户信息时,自动将客户手机号加密保存到数据中。2、在查询客户信息时,自动解密客户手机号。
2023-08-29 10:00:12 374
转载 图解bin log、redo log及undo log区别,2分钟吃透!
Bin log、Redo log 和 Undo log 的区别,是 MySQL 的高频面试题,大厂校招面试90%会问。在 MySQL 数据库中,Bin log、Redo log 和 Undo log 都是极为重要的日志文件。MySQL 实现事务、崩溃恢复、集群的主从复制等,底层都离不开日志,可以说日志是 MySQL 的内核所在。只有了解 MySQL 日志,才算是彻底搞懂 MySQL。本文主要探讨 Bin log、Redo log 和 Undo log 的区别。
2023-08-24 10:36:17 932
原创 Java百度提前批面试题
分布式拒绝服务(DDoS)攻击是通过大规模互联网流量淹没目标服务器或其周边基础设施,以破坏目标服务器、服务或网络正常流量的恶意行为。DDoS 攻击是通过连接互联网的计算机网络进行的。这些网络由计算机和其他设备(例如 IoT 设备)组成,它们感染了恶意软件,从而被攻击者远程控制。这些个体设备称为机器人(或僵尸),一组机器人则称为僵尸网络。一旦建立了僵尸网络,攻击者就可通过向每个机器人发送远程指令来发动攻击。
2023-08-24 10:07:56 1223
转载 Java8 中的真的 Optional 很强大,你用对了吗?
Optional 是 Java 语言的有益补充 —— 它旨在减少代码中的 NullPointerExceptions,虽然还不能完全消除这些异常。它也是精心设计,自然融入 Java 8 函数式支持的功能。总的来说,这个简单而强大的类有助于创建简单、可读性更强、比对应程序错误更少的程序。
2023-08-23 16:36:15 104
原创 一个 SpringBoot 项目能处理多少请求?
参考:https://blog.csdn.net/xiangzhihong8/article/details/131826222一个 SpringBoot 项目能处理多少请求?
2023-08-04 14:15:18 116
转载 JMH性能测试,试试你代码的性能如何
举个简单的栗子🌰 来说:假设我们需要验证String,StringBuffer,StringBuilder三者在使用的时候,希望能够通过一些测试来比对它们的性能开销。
2023-07-17 14:14:40 140
原创 Spring @Valid 不生效 问题记录
综上所述,Spring解析@Valid的过程主要涉及到MethodValidationPostProcessor后置处理器,在BeanPostProcessor的postProcessBeforeInitialization方法中生成代理对象,并在方法执行前执行校验注解的过程。在拦截器中,会先获取方法上的校验注解,然后根据注解的类型,调用不同的校验器进行校验。在Controller的方法参数中添加@Valid注解,然后在实体类的属性上添加校验注解,例如@NotNull、@Size等。
2023-04-13 16:40:38 3595
转载 Jpa进阶,使用 Specification 进行高级查询
了 Jpa 的简单使用,而在实际项目中并不能满足我们的需求。如对多张表的关联查询,以及查询时需要的各种条件,这个时候你可以使用自定义 SQL 语句,但是Jpa并不希望我们这么做,于是就有了一个扩展:使用 Specification 进行查询。
2023-03-28 13:44:30 1584
转载 JPA入门,Spring Boot 整合 JPA 操作数据库
*** 根据 username 查询* @return*//*** 根据 username 和 age 查询* @return*/具体的关键字,使用方法和生产成 SQL 如下表所示KeywordSampleAnd2Or2Is,Equals1Between1 and?
2023-03-28 13:44:17 263
jce_policy-8.AES加密版本.zip
2021-04-22
百度分布式id 代码uid-generator
2020-04-26
SpringBoot-Demo-master.zip
2019-07-29
Java多线程编程技术
2018-03-26
整合spring和mongodb用到的包和配置文件
2017-04-17
UML建模工具JUDE
2015-11-28
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人