- 博客(178)
- 收藏
- 关注
原创 前端转后端入门实践日志2-nacos
已完成分析,共参考 12 篇资料Nacos 可以理解为微服务架构里的 “服务注册中心 + 配置中心 + 服务管理平台”。在 Spring Boot 多项目里,它主要解决两件事:服务之间怎么互相找到,以及配置怎么统一管理、动态刷新。上面的解释好官方啊,我的理解把写在application.yml里的配置,统一让nacos管理。
2026-10-21 11:38:25
194
原创 springboot里 @FeignClient
假设你有两个服务 order-service 和 oa-service,它们是两个独立的 Spring Boot 应用,分别运行在不同的 JVM 进程里,甚至部署在不同的服务器上。这个文件是一个 OpenFeign 客户端接口,作用是:让当前微服务可以像调用本地方法一样,去调用另一个微服务的 HTTP 接口。微服务架构下,跨服务本来就不能直接注入 Bean,Feign 只是让这种跨服务调用变得更优雅、更安全、更好维护。注意这是微服务里用到的, 比如起了2个服务。
2026-10-16 11:31:23
153
原创 SQL语法多数据分析
首先分组是一行非常经典且巧妙的 SQL 逻辑,通常被称为条件聚合(Conditional Aggregation)只要该项目下存在任意一条 inve_role = ‘1’ 的记录,该项目的 lead_flag 就会被标记为 1;否则为 0。
2026-08-26 13:19:29
216
原创 SQL语法 某个字段逗号分隔匹配
统计指定成员参与跟进的项目数量使用字符串处理技巧解决逗号分隔值的精确匹配问题通过动态 SQL 实现条件查询当未指定成员时返回 0 结果虽然功能上能实现需求,但从数据库设计角度考虑,建议进行表结构优化以提高查询性能和可维护性。
2026-08-12 10:55:49
231
原创 SQL语法 一个统计的查询
这个 SQL 语句是一个典型的个人数据统计查询安全性:使用参数化查询防止 SQL 注入健壮性:全面处理 NULL 值和边界条件模块化:不同统计维度分离,便于理解和维护可扩展:预留字段支持未来功能扩展业务导向:紧密围绕项目管理的核心指标设计确保传入参数的合法性验证监控大数据量下的查询性能根据业务发展适时调整统计逻辑。
2026-08-12 10:45:50
182
原创 SQL语法 BETWEEN ... AND ..., >=, <=
BETWEEN … AND … 是 SQL 中专门用于范围查询的运算符。它的基本作用是筛选出某个字段值在指定区间内的数据。
2026-07-28 10:32:15
274
原创 SQL语法 , BETWEEN ... AND ...,比较运算符
日期格式转换 用 TO_DATE,TO_CHAR,STR_TO_DATE, DATE_FORMAT那sql 日期范围查询如何处理呢?
2026-07-28 10:03:30
198
原创 SQL语法 字符串拼接
Oracle 也支持 CONCAT() 函数,但它只支持两个参数如果要拼接多个字符串,只能嵌套使用(如 CONCAT(CONCAT(‘A’,‘B’),‘C’)),所以实际开发中更推荐使用 || 运算符。
2026-07-28 09:45:44
230
原创 SQL语法 NVL,COALESCE
NVL 是 Oracle 数据库的专有函数最佳实践建议与 DECODE 类似,如果你希望你的 SQL 代码具备跨数据库兼容性,强烈建议使用 ANSI SQL 标准函数 COALESCE 来替代 NVL。COALESCE 不仅能在所有主流数据库中通用,而且支持传入多个参数(COALESCE(val1, val2, val3…)),按顺序返回第一个非空值,功能比 NVL 更强大。
2026-07-28 09:40:04
164
原创 sql语法 DECODE, CASE ... WHEN
DECODE 是 Oracle 数据库的专有函数, MySQL 和 SQL Server 并不原生支持 DECODE 函数。默认语法由此可知, 最后一个是默认值奖金计算方式,department_id: 10, 薪资0.1;20,薪资0.15上面的代码是处理空值的, 如果为null,则是0, 否则输出原值功能限制:DECODE 只能进行等值判断(=),不支持大于(>)、小于(<)或 IN 等范围比较。如果逻辑复杂,CASE WHEN 会更加灵活。
2026-07-27 10:41:49
244
原创 mybatis-plus service层拥有的方法
前文我们学习了lambdaQuery() ,这个事不过是service层里一个普通的链式调用方法,他还有其他很多的方法在 MyBatis-Plus 中,Service 层的核心是 IService 接口及其默认实现类 ServiceImpl。它们进一步封装了 CRUD 操作,采用了 get(查询单行)、list(查询集合)、remove(删除)、save(新增)、update(更新)、page(分页)等前缀命名方式,以区分 Mapper 层并避免混淆。
2026-07-16 11:43:07
255
原创 mybatis-plus 常用方法之lambdaQuery, LambdaQueryWrapper
在 Spring Boot 中,只要让 Service 实现类继承 MyBatis-Plus 提供的 ServiceImpl,就可以直接使用 lambdaQuery() 方法进行链式查询。
2026-07-16 11:19:58
284
原创 mybatis-plus mapper 常用方法
lambdaQuery().one() 和 selectOne() 都是 MyBatis-Plus 中查询单条记录的方法,但它们所属的层级不同、使用方式不同、行为也有差异。继承 ServiceImpl 层的service 也具有调用mybatis-plus里方法的能力。在学习的时候, 发现 lambdaQuery().one()这些方法都是mapper层的 是mapper. 调用的。
2026-07-15 18:08:37
284
原创 springboot 序列化/反序列化
对于我们新手来说,似乎按照对应的规则配置, 就能接受返回参数, controller层上得到或返回一个对象;其实内部有个序列化/反序列化操作,上文实体类的注解就需要我们理解一下这些逻辑了。
2026-07-15 11:09:24
204
原创 sql语法 日期函数,TO_DATE,TO_CHAR,STR_TO_DATE, DATE_FORMAT, >=,TRUNC
简单记:Oracle 用 TO_DATE / TO_CHAR,MySQL 用 STR_TO_DATE / DATE_FORMAT,功能一一对应,只是函数名和格式符写法不同。
2026-07-14 11:27:09
276
原创 sql语法 MyBatis <foreach> 标签详解
是 MyBatis 中用于遍历集合/数组的动态 SQL 标签,常用于 IN 查询、批量插入等场景。
2026-07-09 13:35:24
246
原创 mybaits 参数问题
Param(“searchBean”) 的作用就是给 Map 参数起个别名,让 XML 中可以通过 searchBean.xxx 的方式访问 Map 里的值。在 MyBatis 的 Mapper 接口中,当方法参数是 Map 类型时,加上 @Param(“searchBean”) 注解,是为了给这个 Map 参数起一个别名,方便在 XML 映射文件中引用。当你没有使用 @Param 注解时,MyBatis 会按照参数的顺序,自动给它们分配默认名称:param1、param2、param3……
2026-07-09 09:33:50
187
原创 Java Lambda 表达式
Java 8的Lambda表达式是函数式编程的核心特性,允许以简洁语法编写匿名函数。其基本语法为(参数)->{方法体},需配合单抽象方法的函数式接口使用。相比匿名内部类,Lambda更轻量、性能更优,通过invokedynamic实现。典型应用场景包括线程创建、Stream流操作(filter/map)、集合遍历(forEach)和排序(Comparator)等,能显著简化代码。关键区别在于Lambda不创建新类、this指向外部类,且只能引用final局部变量,使代码更简洁高效。
2026-07-08 11:12:05
185
原创 User::getName — 方法引用
里 User::getName 是什么意思意思很明白返回但User::getName 为什么这样写?User::getName 是 Java 8 引入的方法引用语法,它是 Lambda 表达式的简写形式。等价于super T,?所以编译器会自动把 User::getName 转换成对应的 Function// 写法一:方法引用(最简洁)// 写法二:Lambda 表达式// 写法三:匿名内部类(最啰嗦)@Override})三种写法效果完全一样,推荐用写法一(方法引用)
2026-07-08 10:44:11
299
原创 java Function介绍
Function<T, R> 是 Java 8 引入的函数式接口,位于 java.util.function 包中,代表一个接受一个参数并返回结果的函数。Stream 中的 map()PO → VO 转换。
2026-07-08 10:37:25
225
原创 重新认识枚举enum
在 Java 中,enum(枚举)是一种特殊的类,用于定义固定数量的常量集合。它从 JDK 5(Java 1.5) 开始引入,目的是替代传统的 public static final int 常量,提供类型安全、可读性强、功能丰富的常量管理方式扩展相当于// ... 其他常量 private Day(String name , int ordinal) {/* 返回所有常量 */ } public static Day valueOf(String name) {
2026-07-06 13:59:03
189
原创 @Lazy
Lazy 是 Spring 框架中的一个注解,用于控制 Bean 的加载时机,实现延迟初始化(Lazy Initialization)。它的核心作用是:推迟 Bean 的创建,直到第一次被实际使用时才初始化,而不是在 Spring 容器启动时就立即创建。@Lazy 推迟初始化的“第一次使用”,确实包括通过 @Autowired 或 @Resource 注入后的首次方法调用。特别是当你在注入点上加上 @Lazy 时,Spring 会使用代理实现真正的“按需初始化”。2. 将后续调用委托给真实对象。
2026-07-06 13:12:01
219
原创 sql语法 子语句 放在 select / from 后面
在 SQL 中,SELECT 后面不能直接接一个完整的“子语句”(即另一个 SELECT 语句)作为普通列,除非这个子查询满足特定语法要求。✅ 正确用法:SELECT 后的子查询必须是 标量子查询(Scalar Subquery)这是合法的,但这是 FROM 后的子查询,不是 SELECT 后。替代方案:用 JOIN 代替标量子查询(推荐)FROM (子查询)
2026-07-02 14:41:11
143
原创 sql-语法 mybatis resultType=“string“
resultType=“string” 完全可以映射为 List 或 String,这是 MyBatis 中非常常见且标准的用法。
2026-07-02 14:29:41
215
原创 sql-语法 UNION, UNION ALL
UNION ALL 是 SQL 中用于合并多个 SELECT 查询结果集的操作符。它与 UNION 类似,但有一个关键区别:UNION ALL 保留所有行(包括重复行),而 UNION 会自动去重。在大数据量下,UNION 可能因去重操作触发临时表写入和内存溢出,而 UNION ALL 几乎无额外开销,速度通常快 3–5 倍。
2026-07-02 14:25:12
241
原创 sql语法- MyBatis 中 <collection> 标签的作用 1对多的情况
MyBatis 中 标签的这段配置这是 MyBatis 用于处理 一对多(1:N)关联关系 的核心配置。下面逐项解析其含义,并结合例子说明。
2026-07-02 10:40:11
297
原创 sql语法- MyBatis 中 <association> 标签的作用 1对1的情况
我们仔细的看下查询 首先使用了 resultMap , 映射类型都是type=“com.purvar.petou.ei.model.ProjInfoModel” 第二个resultMap 有个 extends=“ProjInfoResult” 就是继承了第一个resultMap 的所有属性,应该也可以合写。之前我们都是普通查询, 现在我们有个疑问如果出现下面的定义的model 数据库能直接查询么, 就是sql查询出来能够映射 对象作为另外一个对象的属性。
2026-07-02 10:33:31
157
原创 sql语法-用于限制查询结果只返回第一行的语法
⚠️ 但注意:ROWNUM 是在排序前分配的,所以如果要按某个字段排序后取第一条,必须用子查询!适用于所有 Oracle 版本, 这是最经典、兼容性最好的方式。建议加上 NULLS LAST 避免 NULL 被误认为最新。确保 NULL 的记录不会被误认为“最新”外层 ROWNUM = 1 取第一行。limit 是mysql 的用法。内层 ORDER BY 先排序。
2026-06-30 16:03:53
216
原创 sql语法 - WITH, ROW_NUMBER, 经典用法
ROW_NUMBER() 是 SQL 中一个非常重要的窗口函数(Window Function),用于为查询结果集中的每一行生成唯一的、连续的整数序号(从 1 开始)。这里 AS 后面是查询语句作为一个结果(可以当做一个表) 给后面的SELECT使用。注意:ROW_NUMBER() 只影响行号生成逻辑,不改变最终结果集的物理顺序。如果你想让查询结果也按某个顺序显示,仍需在主查询中加 ORDER BY。这是 SQL 中实现“Top-N per Group”最常用的方法。
2026-06-30 14:26:59
209
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅