自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 集成企业微信

最近在做一个代码仓库分支创建合规性检查的过程中,需要将不符合合规性的创建信息实时提醒到创建人,除了邮件,内部企业微信成为了第一首选。

2024-02-23 15:08:08 1011

原创 Mybatis SQL语句构建器

换句话说,类库不会为不支持这些子句的数据库执行任何转换。如果目标数据库不支持这些子句,产生的 SQL 可能会引起运行错误。这个例子有什么特别之处吗?仔细看一下你会发现,不用担心可能会重复出现的 “AND” 关键字,或者要做出用 “WHERE” 拼接还是 “AND” 拼接还是不用拼接的选择。SQL 类已经为你处理了哪里应该插入 “WHERE”、哪里应该使用 “AND” 的问题,并帮你完成所有的字符串拼接工作。借助 SQL 类,我们只需要简单地创建一个实例,并调用它的方法即可生成 SQL 语句。

2024-02-04 15:41:20 925

原创 Mybatis3动态SQL

如果你使用过 JDBC 或其它类似的框架,你应该能理解根据不同条件拼接 SQL 语句有多痛苦,例如拼接时要确保不能忘记添加必要的空格,还要注意去掉列表最后一个列名的逗号。利用动态 SQL,可以彻底摆脱这种痛苦。使用动态 SQL 并非一件易事,但借助可用于任何 SQL 映射语句中的强大的动态 SQL 语言,MyBatis 显著地提升了这一特性的易用性。如果你之前用过 JSTL 或任何基于类 XML 语言的文本处理器,你对动态 SQL 元素可能会感觉似曾相识。

2024-02-04 10:14:56 1001

原创 Json Web Token(JWT)

一般而言,你保存令牌的时候不应该超过你所需要它的时间。无论何时用户想要访问受保护的路由或者资源的时候,用户代理(通常是浏览器)都应该带上JWT,典型的,通常放在Authorization header中,用Bearer schema。每次用户认证通过以后,服务器需要创建一条记录保存用户信息,通常是在内存中,随着认证通过的用户越来越多,服务器的在这里的开销就会越来越大。签名是用于验证消息在传递过程中有没有被更改,并且,对于使用私钥签名的token,它还可以验证JWT的发送方是否为它所称的发送方。

2024-02-02 15:30:36 1164

原创 Mybatis-缓存

这意味着,当 SqlSession 完成并提交时,或是完成并回滚,但没有执行 flushCache=true 的 insert/delete/update 语句时,缓存会获得更新。flushInterval(刷新间隔)属性可以被设置为任意的正整数,设置的值应该是一个以毫秒为单位的合理时间量。size(引用数目)属性可以被设置为任意正整数,要注意欲缓存对象的大小和运行环境中可用的内存资源。除了上述自定义缓存的方式,你也可以通过实现你自己的缓存,或为其他第三方缓存方案创建适配器,来完全覆盖缓存行为。

2024-01-29 17:33:59 766

原创 Java中的流

PipedInputStream 和 PipedOutputStream,管道流,用于线程间的通信,一个线程的PipedInputStream对象从另一个线程的PipedOutputStream对象读取输入。DataInputStream 和 DataOutputStream,过滤流,需要使用已经存在的节点流来构造,提供读写Java中的基本数据类型的功能。高级流:(过滤(处理)流) 是对一个已存在的流的链接和封装,通过对数据进行处理为程序提供功能强大、灵活的读写功能。不能独立存在,需要处理另一个流。

2024-01-16 10:31:21 819 1

原创 Linux环境下创建svn代码库

段落中的每个变量是一个用户名,每个值是一个密码。默认域的值是仓库的路径,相对于服务器进程的虚根目录。下列范例 svnserve.conf 允许认证用户的读访问,禁止匿名用户的访问,指向相同目录中的密码数据库,定义了一个授权域名。执行完创建仓库的命令之后,新库下包含db,locks,hooks,conf目录,format,README.txt文件。可conf目录下包含文件authz,svnserve.conf,password,hooks-env.tmpl。决定授权用户的访问级别,使用与上面相同的访问级别。

2024-01-12 15:55:24 430

原创 mybatis where in 条件大于1000特殊处理

1.通过trim标签的属性suffixOverrides:去掉后缀匹配上的东西,例子中后缀如果是or m.project_id in()与suffixOverrides属性值刚好匹配,则去掉or m.project_id in()2.index集合迭代的位置是从0开始, 是为了in条件中开头多余的一个逗号,如果没有,sql则是:m.project_id in(**,**1,2,3…当大于999,sql 则是: m.project_id in(1,2,3…4.4.suffixOverrides:删除后缀。

2024-01-11 14:42:16 715

原创 RESTful 架构详解

REST全称是Representational State Transfer,中文意思是表述(编者注:通常译为表征)性状态转移。它首次出现在2000年Roy Fielding的博士论文中,Roy Fielding是HTTP规范的主要编写者之一。他在论文中提到:"我这篇文章的写作目的,就是想在符合架构原理的前提下,理解和评估以网络为基础的应用软件的架构设计,得到一个功能强、性能好、适宜通信的架构。REST指的是一组架构约束条件和原则。

2023-12-29 14:28:42 1380 1

原创 python调用第三方服务返回415

第二处可能引起错误的地方就是放参数时有多种方法,最通用的有request.AddParameter(),但是在有些情况下要用request.AddJsonBody(new { input = postDataStr });第一处就是要检查有没有加Content-Type或者Content-Type是不是与服务端接受的不对应。

2023-12-29 14:25:54 506 1

原创 解决linux磁盘满了的问题

【代码】解决linux磁盘满了的问题。

2023-11-21 13:52:38 224 1

原创 char与varchar的区别

3)一般定长的数据选用char类型,比如身份证号,手机号,电话等,长度变化很大的可以使用varchar类型。中的n也是字符数,但是最大值需要通过编码来算,不能超过65535字节(从中还需要拿出1到2个字节来存长度)4)注意尾部空格的匹配,特别是插入时和使用like查找时。中的n是字符数,范围是0~255(额外需要1到2个字节来存长度)

2023-10-25 10:47:05 76 1

原创 HashTable之身

初始容量就是创建 Hashtable 时哈希桶的数量,初始容量不应该设置过高,否则可能会浪费空间,因为哈希桶实际就是数组,数组是一块连续的内存,开辟了内存空间但是没有使用就是浪费,如果确定需要存储大量元素,建议使用足够大的初始容量创建 Hashtable 避免后续频繁扩容。较高的负载因子会减少空间开销但是降低查找的性能,因为哈希冲突的概率增加。4)Hashtable 是同步的实现,如果需要使用非线程安全实现建议使用 HashMap,如果需要使用线程安全实现建议使用 ConcurrentHashMap。

2023-10-18 10:55:42 61 1

原创 实现订单30分钟未支付超时自定取消

引言方案分析在开发中,往往会遇到一些关于延时任务的需求。例如对上述的任务,我们给一个专业的名字来形容,那就是延时任务。那么这里就会产生一个问题,这个延时任务和定时任务的区别究竟在哪里呢?一共有如下几点区别:定时任务有明确的触发时间,延时任务没有定时任务有执行周期,而延时任务在某事件触发后一段时间内执行,没有执行周期定时任务一般执行的是批处理操作是多个任务,而延时任务一般是单个任务下面,我们以判断订单是否超时为例,进行方案分析1.数据库轮询思路。

2023-10-17 16:42:35 57

原创 instr()函数实现模糊效果

-返回结果:3 也就是说:在"helloworld"的倒数第2(l)号位置开始,往回查找第三次出现的“l”的位置。格式二:instr( string1, string2 [, start_position [, nth_appearance ] ] ) / instr(源字符串, 目标字符串, 起始位置, 匹配序号)--返回结果:4 也就是说:在"helloworld"的第3(l)号位置开始,查找第二次出现的“l”的位置。--返回结果:4 即:在“lo”中,“l”开始出现的位置。

2023-10-10 14:13:55 242 1

原创 MyBatis如何实现if-else if-else

【代码】MyBatis如何实现if-else if-else。

2023-10-10 12:10:07 4523 1

原创 【Collection和Collections】

再下面是一些抽象类,最后是具体实现类,常用的有 ArrayList、LinkedList、HashSet、 LinkedHashSet、HashMap、LinkedHashMap 等等。List和数据类似,可以动态增长,根据实际存储的数据的长度自动增长list的长度。注意: java 集合框架主要包括两种类型的容器,一种是Collection存储元素集合,另一种是Map,存储键值对。集合框架是一个用来代表和操纵集合的统一架构。从上面的集合框架图可以看到,Java 集合框架主要包括两种类型的容器,

2023-10-08 11:31:16 50 1

原创 idea启动springboot项目突然很卡

工作中,突然发现,idea启动springboot项目很卡,而且不报错,排查了很多点,也试了很多次,最后才发现是因为不知道何时把断点打到了方法上。然后去网上搜索了下,不仅仅只有我遇到过这个问题。引用别人的文章记录下。参考原文章:(总结:idea中断点不能打在方法上,只能打在方法里的某一行,打在方法上就会导致idea启动项目特别慢。

2023-09-22 10:07:33 656

原创 Mysql-统计本周/本月的数据

date_format()函数,mysql中的时间格式化函数,主要用于以不同的格式显示时间/日期数据,除了常规的时间格式,date_format()函数中还有可以获取周内的天数(%w)等针对于周数、月份的时间模板。%V 周 (01-53) 星期日是一周的第一天,与 %X 使用。%v 周 (01-53) 星期一是一周的第一天,与 %x 使用。%X 年,其中的星期日是周的第一天,4 位,与 %V 使用。%x 年,其中的星期一是周的第一天,4 位,与 %v 使用。

2023-08-17 11:24:26 1224 1

原创 JSR 303帮助我们简化校验(续)

实现 ConstraintValidator 接口,并重写相关方法。initialize 方法用于初始化,可以获取 自定义的属性的值。isValid 方法用于校验,可以获取到实际的值,然后与自定义的属性值进行比较。定义长度校验注解创建消息默认配置文件ValidationMessages.properties创建校验器。

2023-05-31 17:29:32 50 1

原创 JSR 303 帮助我们简化校验(续)

Step2.

2023-05-31 16:32:49 57 1

原创 JSR303帮助我们简化校验

检测到数据异常后,会抛出异常。,当然可以指定message。

2023-05-30 23:32:53 48 1

原创 Mybatis-Plus逻辑删除

只为记录下,以后查阅,方便使用。

2023-05-24 20:39:25 289

空空如也

空空如也

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

TA关注的人

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