自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 验证码生成及校验

1、生成验证码提供接口将生成的验证码存入session或redis,将验证码以图片格式或者base64编码串返回给调用端。2、校验验证码提供接口将收到调用端传过来的校验码,从session或redis取出验证码,两个验证码都全部转小写,进行无大小写区分匹配校验,返回true/flase。

2024-01-16 09:27:58 614

原创 全局唯一ID实现方案——雪花算法

Snowflake,雪花算法是由Twitter开源的分布式ID生成算法,以划分命名空间的方式将 64-bit位分割成多个部分,每个部分代表不同的含义。而 Java中64bit的整数是Long类型,所以在 Java 中 SnowFlake 算法生成的 ID 就是 long 来存储的。这样的划分之后相当于在一毫秒一个数据中心的一台机器上可产生4096个有序的不重复的ID。但是我们 IDC 和机器数肯定不止一个,所以毫秒内能生成的有序ID数是翻倍的。

2024-01-16 09:16:21 1218

原创 MySQL正则表达式

这和我们前面章节学的LIKE感觉没有多大区别,但是仔细看你会发现,如果直接把REGEXP换成LIKE是查找不到任何数据的,必须添加通配符’%'才可以实现相同功能。**REGEXP在列值内进行匹配,如果被匹配的文本在列值中出现, REGEXP将会找到它,相应的行将被返回。正则表达式中还预定义了一些常用的字符集,这些我们成为字符类,可以方便我们直接使用。上面的内容都是匹配任务位置的内容,如果我们需要匹配特定位置的内容,需要使用到定位符。此外区间范围的不止有数值,字母也可以,例如[a-z],[A-Z]。

2024-01-12 11:00:37 964

原创 SQL 语句中 where 条件后 写上1=1 是什么意思

有1=1就会有11或1=2之类的永假的条件,这个在拷贝表的时候,加上where 11,意思就是没有任何一条记录符合条件,这样我们就可以只拷贝表结构,不拷贝数据了。这里写上where 1=1 是为了避免where 关键字后面的第一个词直接就是 “and”而导致语法错误,加上1=1后,不管后面有没有and条件都不会造成语法错误了。在我们进行数据备份时,也经常使用到where 1=1,当然其实这两可以不写,写上之后如果想过滤一些数据再备份会比较方便,直接在后面添加and条件即可。

2024-01-12 10:50:49 709

原创 统计代码耗时新方法

有时我们在做开发的时候需要记录每个任务执行时间,或者记录一段代码执行时间,最简单的方法就是打印当前时间与执行完时间的差值,然后这样如果执行大量测试的话就很麻烦,并且不直观,如果想对执行的时间做进一步控制,则需要在程序中很多地方修改,目前spring-framework提供了一个StopWatch类可以做类似任务执行时间控制,也就是封装了一个对开始时间,结束时间记录工具

2024-01-12 10:41:23 357

原创 SpringBoot实现登录拦截器

对于管理系统或其他需要用户登录的系统,登录验证都是必不可少的环节,在SpringBoot开发的项目中,通过实现拦截器来实现用户登录拦截并验证。

2024-01-04 17:16:22 1389

原创 Oracle-创建表空间与用户

Oracle-创建表空间与用户。

2024-01-02 11:34:18 375

原创 SpringBoot整合多数据源,并支持动态新增与切换

在项目的开发过程中,遇到了需要从数据库中动态查询新的数据源信息并切换到该数据源做相应的查询操作,这样就产生了动态切换数据源的场景。为了能够灵活地指定具体的数据库,本文基于注解和AOP的方法实现多数据源自动切换。(代码获取方式:见文章底部(不够简洁优雅,所以下面推荐使用注解的方式来动态进行数据源的切换。**2.2、**DynamicDataSource类。1、使用注解的方式来动态进行数据源的切换;1、使用注解的方式来动态进行数据源的切换;2、支持动态新增新的数据源;2、支持动态新增新的数据源;

2024-01-02 10:51:33 597 1

原创 SpringBoot统一标准响应格式及异常处理

@RestControllerAdvice注解,是对@RestController注解的增强,如果要对@Controller注解增强,那就改为@ControllerAdvice注解即可。比如:自定义Response结构,若每个开发者封装各自的Response结构,造成不一致,不利于前端处理,因此我们需要将响应格式统一起来,定义一个统一的标准响应格式。理论上到这我们已经实现了想要的统一后端响应格式了,但是有没有发现这里存在着一个缺点:每写一个接口都要调用ResultVO来包装返回结果,那是相当的繁琐。

2023-12-29 15:35:47 1265

原创 SpringBoot 实现扫码登录

这表是干啥的呢?就是记录一下谁扫码了。谁登录了。User_Token表。

2023-12-26 19:36:32 487

原创 一个功能强大的分布式锁框架:Lock4j

*** 自定义分布式锁执行器*/@Component@Override@Override。/*** 自定义分布式锁key生成器*/@Component/*** 自定义抢占锁失败执行策略*/@Component@Override默认的锁获取失败策略为。

2023-12-26 16:35:27 466

原创 Spring Boot实现第一次启动时自动初始化数据库

本文以Spring Boot + Mybatis为例,运用MySQL数据库,完结了SSM应用程序第一次发动时主动检测并完结数据库初始化的功用,理论上上述方式适用于一切的联系型数据库,咱们稍作修正即可。

2023-12-26 16:20:37 1729

原创 SpringBoot整合RocketMQ

rocketmq:...enhance:# 启动隔离,用于激活配置类EnvironmentIsolationConfig# 启动后会自动在topic上拼接激活的配置文件,达到自动隔离的效果# 隔离环境名称,拼接到topic后,topic_dev,默认空字符串。

2023-12-26 15:53:33 493

原创 MySQL8安装教程

Windows 10官网可以下载最新版本的MySQL 8.0下载地址:1、下载完成后,我们就开始安装,双击安装包,在弹出的对话框点击下方的同意协议,再点击【Next】2、在下图页面选择默认选项,点击【Next】3、在下面的页面中,会提示需要安装的软件,与MySQL产品相关的产品组件必须先安装完成,才能继续安装MySQL,这里我们点击下方的【Execute】即可开始安装MySQL的依赖软件,安装过程中会提示你是否安装,统一点是即可。

2023-12-26 14:49:56 1987

原创 SQL优化小技巧

(1)客户端发送一条查询语句到服务器;(2)服务器先查询缓存,如果命中缓存,则立即返回存储在缓存中的数据;(3)未命中缓存后,MySQL通过关键字将SQL语句进行解析,并生成一颗对应的解析树,MySQL解析器将使用MySQL语法进行验证和解析。例如,验证是否使用了错误的关键字,或者关键字的使用是否正确;(4)预处理是根据一些MySQL规则检查解析树是否合理,比如检查表和列是否存在,还会解析名字和别名,然后预处理器会验证权限;根据执行计划查询执行引擎,调用API接口调用存储引擎来查询数据;

2023-12-26 14:36:05 327

原创 centos7服务器安装 mysql

官网:https://dev.mysql.com/downloads/mysql/

2023-12-23 15:35:26 722 2

原创 基于Java+SpringBoot实现人脸识别搜索

结合人脸识别技术,在工厂、学校、商场、餐厅等人流密集的场所进行监控,对人流进行自动统计、识别和追踪,同时标记存在安全隐患的行为及区域,并发出告警提醒,加强信息化安全管理,降低人工监督成本。人脸识别搜索技术作为现代计算机视觉领域的重要研究方向之一,已经在多个领域展现出巨大的应用潜力。随着信息技术的飞速发展,人脸识别搜索在安全监控、社交媒体、人机交互等领域得到了广泛关注和应用。本文旨在探讨人脸识别搜索技术的背景、原理以及其在实际应用中的意义和挑战。

2023-12-22 17:50:20 1381

原创 OpenFeign 万字教程详解

Feign是一个声明式的Web服务客户端(Web服务客户端就是Http客户端),让编写Web服务客户端变得非常容易,只需创建一个接口并在接口上添加注解即可。cloud官网介绍Feign: https://docs.spring.io/spring-cloud-openfeign/docs/current/reference/html/OpenFeign源码: https://github.com/OpenFeign/feign❝。

2023-12-22 17:43:33 1028

原创 GitHub桌面版和汉化包,使用详细过程

下载地址下载地址

2023-12-22 14:51:23 1107

原创 StringUtils中isEmpty 和 isBlank 的用法区别

是否为空. 可以看到 " " 空格是会绕过这种空判断,因为是一个空格,并不是严格的空值,会导致 isEmpty(" ")=false。

2023-10-17 09:13:52 100

原创 idea提交git项目,提交代码 点击commit一闪而过,没有反应的解决办法

如果存在此情况点击红框位置把不同的编码设置成一样即可,不会对程序功能有影响,只是对换行符有修改。为保证之后的操作不受影响可以选择按照下面的操作步骤进行设置:file > settings > editor > Code Style 找到line separator (for new file):设置成你想要的编码格式即可,如下图:对着上图选择对应的。

2023-10-11 12:01:06 2476

原创 LocalDateTime、LocalDate、Date、String相互转化大全及其注意事项

需要注意的是,在使用时需要注意时区和时间戳的问题,否则可能会出现一些错误。总之,熟练掌握这些类型之间的转换方式可以提高我们的开发效率,也可以避免一些常见的错误,在实际开发中能够更加高效地处理日期时间相关的任务。

2023-10-09 09:48:11 1456

原创 MapStruct复制对象详细介绍

MapStruct是基于JSR 269的Java注释处理器,用于生成类型安全的 Bean 映射类。您所要做的就是定义一个映射器接口,该接口声明任何所需的映射方法。在编译过程中,MapStruct将生成此接口的实现。此实现使用纯 Java 方法调用在源对象和目标对象之间进行映射,即无反射或类似内容。与手动编写映射代码相比,MapStruct通过生成繁琐且容易出错的代码来节省时间。遵循配置方法的约定,MapStruct使用合理的默认值,但在配置或实现特殊行为时会步入歧途。在这里插入图片描述。

2023-10-09 09:42:18 428

原创 Git在工作中的常见用法

如果你需要删除推了的提交(),你可以使用下面的方法。可是,这会不可逆的改变你的历史,也会搞乱那些已经从该仓库拉取(pulled)了的人的历史。简而言之,如果你不是很确定,千万不要这么做。这只能在没有推送之前有用. 如果你已经推了, 唯一安全能做的是, 那会创建一个新的提交(commit)用于撤消前一个提交的所有变化(changes);或者, 如果你推的这个分支是rebase-safe的 (例如:其它开发者不会从这个分支拉), 只需要使用。

2023-09-27 16:31:00 297

原创 浏览器控制台中网络选项看不到请求发送出的url信息解决办法

浏览器控制台中网络看不到请求发送出的url信息解决办法

2023-09-25 09:50:14 1588

原创 解决启动nacos报错闪退问题

【代码】解决启动nacos报错闪退问题。

2023-08-16 09:25:32 708

原创 Mybatis之批量更新数据

当我们使用mybatis的时候,可能经常会碰到一批数据的批量更新问题,因为如果一条数据一更新,那每一条数据就需要涉及到一次数据库的操作,包括网络IO以及磁盘IO,可想而知,这个效率是非常低下的。而平时我们很少直接使用原生jdbc直接操作数据库,而是会使用比较成熟的ORM框架,那么今天我们就来总结一下,如何使用mybatis做批量更新。

2023-05-16 17:44:05 4066

原创 springboot+vue学生选课管理系统

采用 vue 2.0 开发,通过调用后端提供的数据接口实现数据的动态渲染。项目默认端口号 8080使用监视器,得益于 Mybatis 强大的动态 SQL 功能,实现高性能动态搜索功能使用 router 配置路由,实现不同用户类型导航栏的动态渲染使用 axios 异步加载后端数据使用 element ui 实现表单的前端校验功能使用 sessionStorage 实现登录拦截分别实现了基于前端和后端的数据分页功能采用 Restful 风格开发,采用 CrossOrigin 解决跨域问题。

2023-04-27 16:34:37 273

原创 mybatis中#{}和${}的区别

{}进行预编译,${}进行字符串替换#{}可避免SQL注入,${}存在SQL注入风险当传入参数时,使用#{},当传入表名或列名时,使用${}。

2023-04-27 16:19:16 177

原创 idea git commit之后,撤销commit办法

问题:idea提代码后,想撤销commit,怎么办捏??(T_T)To Cimmit:里面填写 HEAD~1 点击Reset即可撤销上次commit的内容;

2023-04-27 16:07:58 4130

原创 Java 实现word、excel、ppt、txt等办公文件在线预览功能!

通过第三方工具openoffice,将word、excel、ppt、txt等文件转换为pdf文件流;当然如果装了Adobe Reader XI,那把pdf直接拖到浏览器页面就可以直接打开预览,前提就是浏览器支持pdf文件浏览。java 实现办公文件在线预览功能是一个大家在工作中也许会遇到的需求,网上些公司专门提供这样的服务,不过需要收费。我这里介绍通过poi实现word、excel、ppt转pdf流,这样就可以在浏览器上实现预览了。将word、excel、ppt转换为pdf流的工具类代码。

2023-04-04 17:36:38 261

原创 DataGrip!使用教程

在面板中,左上部分列出了已经建立的数据库连接,点击各项,右侧会展示当前连接的配置信息,General面板中,可以配置数据库连接的信息,如主机、用户名、密码等,不同数据库配置信息不完全相同,填入数据库URL,注意,URL后有个选项,可以选择直接填入url,那么就不需要单独填主机名、端口等信息了。需要将当前主题保存一下,点击save as,起个名,选择重命名后的主题就能修改了,这里我选择习惯的Conurier New字体,大小为14号,点击右下角的apply,点击OK。

2022-11-14 09:09:16 12439

原创 sql中的左外连查询的两种写法

outer join。

2022-11-02 09:09:07 2833

原创 这45个小技巧,帮你写出一手同事都羡慕的漂亮代码!

比如在项目中不同的类型的业务可能需要上传各种各样的附件,此时就可以定义好不同的一个附件的枚举,来区分不同业务的附件。不要在代码中直接写死,不定义枚举,代码阅读起来非常困难,直接看到数字都是懵逼的。。

2022-10-28 09:57:14 687

原创 if (obj != null) 判空新方式

正文相信不少小伙伴已经被java的NPE(Null Pointer Exception)所谓的空指针异常搞的头昏脑涨,有大佬说过“防止 NPE,是程序员的基本修养。”但是修养归修养,也是我们程序员最头疼的问题之一,那么我们今天就要尽可能的利用Java8的新特性 Optional来尽量简化代码同时高效处理NPE(Null Pointer Exception 空指针异常)

2022-10-27 09:08:04 178

原创 常用正则表达式公式总结

正则表达公式总结

2022-10-10 20:39:04 263

原创 使用Spring AOP实现异步文件上传

相信很多系统里都有这一种场景:用户上传 Excel,后端解析 Excel 生成相应的数据,校验数据并落库。这就引发了一个问题:如果 Excel 的行非常多,或者解析非常复杂,那么解析+校验的过程就非常耗时。如果接口是一个同步的接口,则非常容易出现接口超时,进而返回的校验错误信息也无法展示给前端,这就需要从功能上解决这个问题。一般来说都是启动一个子线程去做解析工作,主线程正常返回,由子线程记录上传状态+校验结果到数据库。同时提供一个查询页面用于实时查询上传的状态和校验信息。

2022-09-07 17:29:57 111

原创 扔掉工具类!MyBatis 一个简单配置搞定加密、解密,不能太方便了~!

我们有一张客户表customer,里面有客户手机号(phone)和客户地址(address)等字段,其中客户手机号(phone)是需要加密保存到数据库中的。假如:黑客黑进了数据库,或者离职人员导出了数据,那么就可能导致这些敏感数据的泄漏。在我们数据库中有些时候会保存一些用户的敏感信息,比如:手机号、银行卡等信息,如果这些信息以明文的方式保存,那么是不安全的。从测试结果中可知,添加数据时,需要加密的数据(phone)在数据库中已经加密了,在查询的时候,加密的数据已经自动解密了。从数据库获取记录时,解密数据。

2022-09-07 17:21:47 130

原创 MyBatis好帮手,一款功能强大的IDEA插件,帮你节省90%代码量

搞了继承后,看mapper接口对应的xml也变得比较麻烦,哪些方法要放到继承里面也比较难定义,有可能某些接口继承的方法根本用不到。在java代码里面操作 byte 和 short 类型比较麻烦,经常需要强制转换,下面是设置使用Integer 来替代byte和short还有使用Java8的日期时间类型。exampleQuery:会生成一大堆的example文件,xml中的example代码看起来也很乱、建议使用方法名生成sql来替代。只需要一个方法名,不需要参数和返回值,输入方法名后,按。

2022-09-06 09:51:31 718

原创 SQL优化 21 连击

查询SQL尽量不要使用select *,而是具体字段

2022-09-06 09:03:21 588 1

空空如也

空空如也

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

TA关注的人

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