- 博客(99)
- 资源 (2)
- 收藏
- 关注
原创 PostgreSQL 聚合函数总览
请注意:在聚合函数语境下,RANK() 等窗口函数的行为与在 OVER 子句中不同,它们需要 WITHIN GROUP 子句来定义排序。这类函数非常强大,其计算依赖于数据的特定顺序。) 子句来指定排序。这类函数用于评估如果某个"假设"的值被加入到数据集中,它会处于什么位置。这是最常用的一类,用于常规的数据汇总。PostgreSQL不仅支持SQL标准函数,还提供了一些特有的高级函数。请注意:此列表并未涵盖所有统计函数,完整的列表请参考官方文档。用于执行基本的统计分析,非常适合数据探索。
2026-04-14 10:24:29
315
原创 Pg中常用的表达式|句法
WHERE 条件:WHERE CASE WHEN …END = ‘某值’ORDER BY:按自定义顺序排序。GROUP BY:根据条件分组。SELECT 列表(如上例)
2026-03-27 15:18:15
19
原创 PostgreSQL 聚合函数 array_agg()、string_agg()
string_agg()是PostgreSQL中的聚合函数,可以实现"分组后行转列,用逗号\分号\空格连接",功能强大且性能优秀。
2026-03-04 09:58:42
93
原创 MyBatis 中 jdbcType 的作用
jdbcType 在 MyBatis 中扮演着桥梁和规范者的角色,它告诉 MyBatis 和 JDBC 驱动如何与数据库交互。
2026-02-27 09:00:14
290
原创 本地缓存Caffeine的使用
本地缓存直接把数据存在应用进程里,读写速度快,特别适合:静态配置 / 元数据:比如系统的规则参数、接口白名单、地区编码映射表,这些数据几乎不怎么变;小体量高频访问数据:比如字典表(性别、学历、订单状态等),数据量小但查询频繁;复杂计算结果缓存:比如统计报表的计算结果、公式推导结果,避免重复计算浪费 CPU;临时数据:比如验证码、临时 token,只在当前请求或短时间内有效,不需要跨服务共享。如果需要跨服务共享缓存、数据量很大,或者要求高可用,还是得选 Redis 这类分布式缓存。
2026-02-26 10:59:49
239
原创 Mybatis访问PostgreSql异常:PSQLException: 错误: 无法确定参数 $1 的数据类型
摘要 PostgreSQL查询报错"无法确定参数$1的数据类型"是由于参数出现在无法推断类型的位置(如函数参数、OR条件左侧等)。虽然MyBatis指定了jdbcType,但PostgreSQL解析器仍可能无法识别。解决方案包括:调整条件顺序(将明确类型的字段放左侧)、使用类型转换(::text)、改用字符串连接操作符(||)或重构SQL避免参数出现在模糊位置。测试表明这是PostgreSQL解析问题,而非MyBatis或JDBC驱动错误。常见修复方案针对不同场景提供了具体优化方法。(1
2026-02-24 14:20:00
496
1
原创 Mybatis 的 XML 文件中常用的标签
本文介绍了MyBatis中三种常用动态SQL标签的用法。1) <if>标签用于条件判断,示例中展示了根据参数值动态添加查询条件;2) <choose>标签实现多条件分支逻辑,包含<when>和<otherwise>子标签;3) <foreach>标签用于循环处理集合参数,特别强调了批量插入时参数占位符的正确使用方式。这些标签能有效简化复杂SQL的编写,提升代码可读性和灵活性。
2026-02-11 15:13:02
185
原创 基于mybatis-generator插件生成指定数据表的实体类、xml文件和dao层接口
【代码】基于mybatis-generator插件生成指定数据表的实体类、xml文件和dao层接口。
2026-02-05 14:29:43
184
原创 MyBatis 的 XML 文件中特殊字符的处理
MyBatis XML文件中处理大于/小于号的解决方案:1)使用XML转义字符(>表示>,<表示<);2)用CDATA区段包裹SQL语句;3)动态SQL中同样需要转义处理。文章提供了完整的转义字符对照表和特殊场景示例,包括动态表名、BETWEEN语句等场景下的正确写法。推荐优先使用XML转义字符方案,确保SQL语句在XML文件中的正确解析。
2026-02-05 11:21:55
663
原创 CentOS系统中创建定时器
本文介绍了在Linux系统中配置systemd定时器执行任务的完整流程,包括创建脚本、设置权限、定义服务单元和定时器单元文件,以及相关的管理命令。文章还详细列出了定时器或任务启动失败的排查方法,包括检查服务状态、查看日志、分析常见错误原因(如路径不完整、启动频率限制等)以及相应的解决方案。通过journalctl工具可以获取详细的错误信息,帮助快速定位问题。最后提供了重置失败计数器和调整定时器频率的建议。
2026-02-03 11:18:21
599
原创 Maven 依赖冲突的处理
摘要:线上SQL解析超时问题排查发现是JSqlParser 4.6版本的缺陷导致,需升级至4.9版本。项目存在多个依赖引入不同JSqlParser版本(4.6和4.9),产生Maven依赖冲突。Maven依赖仲裁规则遵循"路径最短优先"和"声明顺序优先"原则。解决方案对比了两种方式:1)使用exclusion排除不必要版本,虽直接但维护性差;2)更优方案是在dependencyManagement中统一锁定版本(4.9),该方式优先级最高且维护性好。最后提供了查看依赖
2026-01-26 15:02:02
357
原创 python读取ceph文件的样例
本文展示了一个使用Python boto3库从Ceph对象存储中读取文件的示例代码。通过创建S3客户端连接,指定端点URL和访问凭证后,定义readCeph函数获取指定存储桶(bucket)和对象键(object key)的文件内容。代码演示了如何获取'oss-wzrh'存储桶中特定路径下的文件内容并打印输出。文中还包含两个失败的curl命令示例,说明直接使用curl访问该Ceph存储的不可行性。最终通过boto3库成功实现了对Ceph存储的文件读取操作。
2026-01-23 17:34:12
30
原创 基于AES的对称加密算法
摘要:AES是目前最主流的对称加密算法,支持128/192/256位密钥。本文介绍了两种Java实现AES加解密的方式:1)随机生成密钥和IV,安全性高但密钥管理困难;2)使用固定密钥和IV,存在安全风险但便于实现。后端代码展示了CBC模式下的完整加密解密流程,包括密钥生成、IV处理、Base64/Hex编码转换。同时提供了前端使用CryptoJS进行加密的示例,建议将随机IV拼接传输以增强安全性。文章还对比了主流加密算法,指出AES和SM4是当前权威标准,而DES和RC4已不安全。
2026-01-16 10:27:57
93
原创 基于StreamLoad将数据写入Doris
本文介绍了使用Apache HttpClient实现Doris数据库的Stream Load数据导入功能。通过配置HttpClientBuilder处理307重定向,构建HTTP PUT请求将JSON数据流式加载到指定表中。代码实现了基础认证、请求头设置(包括唯一标签、JSON格式参数等)和响应处理。示例演示了如何将包含设备状态信息的JSON数组导入到Doris的new_device_status_analysis表中,并验证了导入结果。该方案适用于需要高效批量导入JSON格式数据的场景,支持自定义字段映射
2026-01-15 16:35:00
64
原创 SpringBoot配置CORS
SpringBoot实现跨域资源共享(CORS)的5种方法:1.使用@CrossOrigin注解在Controller类或方法上配置;2.通过WebMvcConfigurer全局配置CORS策略;3.自定义Filter设置响应头实现;4.使用Interceptor在请求处理前后添加逻辑;5.直接在响应体中设置CORS头部。建议生产环境中明确指定允许的源和方法,避免过度宽松的配置。配置方式包括注解、全局设置、过滤器等多种灵活方案,可根据项目需求选择最适合的实现方式。
2026-01-06 14:38:47
816
原创 JDBC直接访问关系库及Hikari数据源访问关系库
本文介绍了两种Java访问关系型数据库的方式。第一种是JDBC直接连接方式,通过DriverManager获取连接并执行查询。第二种是使用HikariCP连接池,详细说明了连接池的各项配置参数,特别是maxLifetime属性的重要性及其推荐设置。两种方式都演示了如何查询User表并将结果映射到User对象。连接池方式通过DataSourceUtils工具类管理连接,提供了更好的性能和资源管理。文章强调了正确配置连接池参数以避免连接泄漏和无效连接问题。
2026-01-04 13:11:33
227
原创 JSONPath解析JSON数据结构
摘要: Fastjson的JSONPath提供了一种简洁的路径表达式语言,用于高效查询和操作JSON数据。支持基本语法(如$根节点、..递归搜索)、函数语法(如min()/max())和筛选语法(如[?(@.price>10)])。通过依赖Fastjson库,开发者可直接解析JSON字符串或对象,快速提取特定节点(如$.store.book[0].title)、过滤数据(如价格范围查询)或执行统计计算。适用于复杂JSON结构的精准数据访问,避免多层get()调用。 (字数:150)
2025-12-31 13:04:01
561
原创 @Bean修饰的方法的参数的注入方式
文章摘要:本文介绍了Spring中@Bean方法参数注入的两种方式:1)基础类型使用@Value注解从配置文件注入;2)对象类型默认按类型自动装配(@Autowired),当有多个同类型bean时可通过@Qualifier指定bean名称。示例代码展示了如何配置DataSource和JdbcTemplate,包括使用@PropertySource加载配置文件,以及通过@Value和@Qualifier进行参数注入。关键注解包括@Configuration、@PropertySource、@Bean、@Val
2025-11-17 14:31:08
160
原创 Java中的静态代理与动态代理(Proxy.newProxyInstance)
本文介绍了Java中的两种代理模式实现方式:静态代理和动态代理,重点讲解了基于Proxy.newProxyInstance()的动态代理实现方法。通过定义目标接口、实现目标类、创建调用处理器以及生成代理对象四个步骤,展示了动态代理的实现过程。动态代理的核心优势在于无需修改原有代码即可增强功能,通过InvocationHandler在方法调用前后插入额外逻辑。需要注意的是,JDK动态代理只能为实现了接口的类创建代理实例。
2025-11-11 16:42:11
226
原创 Java实现gRPC双向流通信
该文章介绍了如何配置gRPC Java开发环境,主要包含以下内容: Maven依赖配置:包括gRPC相关依赖、日志依赖SLF4J和Protocol Buffers依赖,并指定Java 8作为编译环境。 构建插件配置:使用protobuf-maven-plugin插件自动生成gRPC代码,配置了protoc和grpc-java插件的版本。 proto文件定义:展示了如何定义gRPC服务MyService和消息格式MyRequest/MyResponse,支持双向流式通信。 开发环境准备:简要说明需要安装pro
2025-10-23 16:21:09
379
原创 PostgreSql基于postgres_fdw创建外部表
摘要:本文介绍了PostgreSQL中配置FDW(Foreign Data Wrapper)远程访问的步骤。首先创建postgres_fdw扩展,然后定义外部服务器连接(host、dbname、port参数)。接着映射本地用户到远程用户(包含认证信息),最后创建外部表映射到远程数据库表(需指定列定义和远程表名)。整个过程实现了PostgreSQL跨服务器访问外部数据的功能。
2025-07-08 15:46:16
300
原创 Linux命令行发送http请求
本文展示了两个使用cURL工具发送HTTP请求的示例。第一个请求通过POST方法查询时间序列数据库,请求体中包含时间范围、指标名称和标签等参数。第二个请求演示了文件下载功能,包含认证令牌、内容协商头和自定义头的设置,并通过"-o"参数指定下载文件的存储路径。两个示例都采用JSON格式的请求体,并展示了HTTP请求中常见的头部设置,包括Content-Type、Authorization和Accept等。
2025-07-02 09:11:46
206
原创 Java字符串及字符编码及转码简介
Java字符串在JVM内部采用UTF-16编码存储,每个字符占2字节。UTF-8是另一种Unicode实现方式,与UTF-16的字节结构不同。I/O操作需显式指定编码(如UTF-8),否则使用平台默认编码,可能导致乱码。示例代码展示了字符串与UTF-8/UTF-16间的转换,以及不同编码下字节数组的差异。UTF-8编码中英文字符占1字节,汉字占3字节;UTF-16则统一占2字节。注意编码转换时需保持编解码一致,避免数据损坏。
2025-06-24 17:33:35
368
原创 Springboot获取容器中bean的方法
本文介绍了两种在Spring Boot中获取Bean的方式:1)通过@Autowired注解自动注入,默认按类型查找,也可配合@Qualifier按名称注入;2)静态方法方式,包括实现ApplicationContextAware接口获取应用上下文,或直接通过启动类获取ConfigurableApplicationContext。两种方式各具特点,注解方式更简洁,静态方法更灵活适用于非容器管理环境中。
2025-05-23 22:16:33
420
原创 hbase shell的常用命令
HBase Shell 是 HBase 数据库的命令行工具,提供了多种操作命令。用户可以通过 hbase shell 命令登录,使用 list 查看所有表,并通过 create 创建表,如 student 和 scores 表。插入数据使用 put 命令,查询数据则使用 get 和 scan。scan 支持多种过滤条件,如按行键范围(STARTROW 和 STOPROW)、列名(COLUMNS)以及限制返回条数(LIMIT)。此外,还可以查询特定时间戳的数据。这些命令帮助用户高效管理和查询 HBase 数据
2025-05-14 16:04:13
580
原创 @KafkaListener和KafkaTemplate自动装配原理分析
依赖项和配置信息参见另一篇博文,这里主要借助源码分析@KafkaListener和KafkaTemplate自动装配原理。
2025-02-25 10:57:38
706
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅