开发经验
恋曦Tel
成为更好的自己。
展开
-
H5聊天对话气泡的一种实现方式及原理
H5聊天对话气泡的一种实现方式及原理实现效果实现原理实现代码聊天对话气泡实现特别需要处理的是气泡的小尖角。实现效果实现原理基于HTML元素边框原理及CSS伪元素实现气泡小尖角。关键点如下:元素边框实际是由梯形组成。当元素宽高为0、边框不断加粗时,实际边框是成三角形。保留元素的其中一个边框,透明化另外3个边框。通过元素的层级关系用两个三角形遮盖形成带边框的小三角。这里使用CSS伪元素实现两个小三角。实现代码<html><head><meta ch原创 2022-03-28 11:08:30 · 3692 阅读 · 0 评论 -
通用Result<T>公共响应结果对象设计
通用公共Result<T>响应结果对象设计原创 2022-01-24 18:23:37 · 2683 阅读 · 0 评论 -
常用场景SQL合集
常用场景SQL合集DELETE FROM res_supplier WHERE supplier_name IN (SELECT * FROM(SELECT supplier_name FROM res_supplier GROUP BY supplier_name HAVING COUNT(supplier_name) > 1) a)AND id NOT IN(SELECT * FROM(SELECT MIN(id) FROM res_supplier GROUP BY supplier_nam原创 2022-01-13 10:51:23 · 2467 阅读 · 0 评论 -
BigDecimal使用方式实践
BigDecimal使用方式特性示例1. 定义BigDecimal的正确方式推荐使用BigDecimal的静态工厂方法。 其优先于构造函数方法,因为它允许重用常用的BigDecimal值。对于0,1,10推荐直接使用静态常量。其次使用字符串构造方法,double构造方法结果将不可预测。BigDecimal zero = BigDecimal.ZERO, one = BigDecimal.ONE, ten = BigDecimal.TEN; // 0,1,10(推荐)BigDecimal num1 =原创 2021-11-28 17:14:45 · 1816 阅读 · 0 评论 -
对Mybatis-Plus的封装(更新中)
对Mybatis-Plus的封装(更新中)在日常实际业务开发中常常对非必传参数组装查询条件,一大堆if判断充斥在我们的代码中,我们可以做一层封装简化业务代码:protected <C, R> void eqNon(AbstractWrapper<C, R, ?> wrapper, R column, Object value) { if (Objects.isNull(value)) { return; } wrapper.eq(column原创 2021-11-14 19:30:23 · 1501 阅读 · 0 评论 -
Git合并多个提交(包括远程仓库的提交)
Git合并多个提交(包括远程仓库的提交)1.查看提交历史,—oneline -20最近20次提交,每次提交显示一行摘要2.合并提交历史,可合并最近几个历史,也可指定合并某几个历史3.编辑合并规则,pick4.有冲突解决冲突,没有冲突编辑提交信息,*强制推送*1.查看提交历史,—oneline -20最近20次提交,每次提交显示一行摘要git log —oneline -202.合并提交历史,可合并最近几个历史,也可指定合并某几个历史#合并前5个提交git rebase -i HEAD~5#或原创 2021-09-16 17:46:40 · 2205 阅读 · 0 评论 -
IDEA中搜索项目jar包里的日志、代码等内容
IDEA中搜索项目jar包里的日志、代码等内容启动项目时,有时候我们想通过启动日志来查看源码了解代码执行的流程,或者是项目启动失败了,想通过打印出的日志定位源码位置来了解失败的原因,但是Windows下在IDEA中直接Ctrl+Shift+F或双击Shift直接搜索是搜索不到jar包里面的内容的。解决方式:通过Ctrl+Shift+F然后切换到Directory选项就能搜索到了。网上有说通过下载jar包源码去搜索,试了下没有搜到,这种方式应该是可以搜到的,但是下载源码搜索感觉很不爽,那么多类也不知原创 2021-06-11 10:46:35 · 2549 阅读 · 0 评论