- 博客(71)
- 收藏
- 关注
原创 开发工具类——获取唯一标识号
解决方案:根据当年当天的时间为依据,一年内不会重复的4位数,利用年日时分秒的组合,通过哈希算法生成固定4位数字。问题:现在有一批货物需要编号0000-9999,使用普通随机可能会重复获取。
2026-01-30 14:58:42
5
原创 统计划水文1210
(“2025”, 1, “1”),字段依次表示年份、类型、次数。求出结果集某年哪个类型一共出现多少次?现在有一个结果集(“2024”, 1, “1”),2、stream流统计。
2025-12-10 15:50:25
124
原创 统计划水文1209
现在有5家公司,总共有8个商品,现在统计这些公司最近6年的商品销售额、销售数量情况,使用达梦数据库或者java代码处理。结合使用:Java负责数据导入+预处理,达梦负责复杂分析+报表生成。辅助方案:Java代码用于快速验证、 mock数据测试、内存计算。主方案:将达梦数据库作为核心,数据入库后用SQL分析。二、Java代码处理方案。3、核心统计分析SQL。3、stream流统计。
2025-12-09 15:38:29
382
原创 一个时间对比方法(水一期)
使用Java 8引入的java.time.LocalDateTime类。调用LocalDateTime.isBefore()方法进行比较。调用Date.before()方法进行比较。使用传统的java.util.Date类。同样处理了null值情况。处理了null值情况。
2025-11-18 16:10:52
96
原创 生成一个在多线程下不会重复的16位流水单号方式
方案三:Redis原子操作 + UUID。方案一:基于时间戳 + 序列号。方案二:雪花算法改进版。
2025-10-29 17:19:02
188
原创 常见的字符串格式正则校验
1、常用格式验证:邮箱、手机号、身份证、URL、IP地址等。2、业务相关验证:用户名、密码强度、车牌号等。3、数据类型验证:数字、正整数、日期时间等。4、扩展性:提供了自定义正则验证方法。
2025-10-29 15:28:36
161
原创 将一个List分页返回的操作方式
1、性能考虑:对于大数据集,建议缓存分页计算结果2、线程安全:如果源 List 可能被并发修改,需要加锁或使用副本3、空值处理:处理好边界情况(如超出范围的页码)4、灵活性:可根据需要添加排序、过滤等功能推荐使用方案一或方案二,它们结构清晰且易于维护,同时保持了与 MyBatis-Plus 的良好兼容性。
2025-10-29 15:20:27
298
原创 在数据库使用varchat和chat的区别
但在极少数性能敏感、长度固定的场景下,CHAR 更合适。如果你做的是业务系统(如电商、后台管理、CRM),全部用 VARCHAR 是完全可以接受的,除非你有极端性能要求或存储瓶颈。3、兼容性好:现代数据库(MySQL、PostgreSQL、SQL Server)对 VARCHAR 优化很好。一、VARCHAR vs CHAR 的区别(重点)1、节省空间:不会用空格补齐,适合大多数业务场景。2、灵活性高:适应长度变化,不需要频繁改表结构。二、如果所有字段都用 VARCHAR,会怎样?四、结论(一句话总结)
2025-10-10 11:17:13
296
原创 简单的随机抽奖算法
备注:drawLotteryAdvanced方法更为灵活可以设置抽奖次数,简单的测试可以使用drawLottery方法。题目:写一个随机抽奖的算法,有100个数字,每次抽两次,其中1-到10必须中一个。使用java写一个算法出来。
2025-09-18 18:00:21
206
原创 Elasticsearch vs 单表LIKE查询性能对比
传统数据库即使有索引,对LIKE '%keyword%'这种模式也无法有效利用。合理设计mapping、使用适当的分词器、考虑分片和副本数量、定期优化索引。.Elasticsearch使用倒排索引,特别适合文本搜索。.复杂组合查询:ES可能快10-100倍。.在同等硬件下,ES性能优势更明显。.ES支持分布式部署,可以线性扩展。.简单查询:ES快5-10倍。
2025-08-21 09:22:23
189
原创 【字符串‘xxxx 34590.3-2022‘‘需要批量处理掉数字前面的字母】
对于输入字符串 “GB/T 34590.3-2022”,会保留 “34590.3-2022”对于输入字符串 “T/CSAE 316.2—2023”,会保留 “316.2—2023”这个算法可以灵活处理各种类似格式的字符串,提取出数字部分及其后续内容。以下是一个Java算法,用于批量处理字符串,去除数字前面的字母部分。\d]* 匹配从字符串开头到第一个数字之前的所有非数字字符。算法能正确处理各种分隔符(如 /、空格、—等)保留数字后的所有字符,包括标点符号。返回处理后的字符串数组。
2025-07-30 17:17:42
167
原创 SQLSERVER-DB操作记录
如果你已经有一个表结构存在,或者你想手动指定新表的列名和类型,可以使用INSERT INTO SELECT语句。这允许你选择性地选择列。SELECT INTO 语句可以直接将查询结果作为一个新表创建出来。这个新表的结构(包括列名和数据类型)将与查询结果匹配。在SQL Server中,将查询结果放入一张新表可以通过几种方法实现。方法2:使用INSERT INTO SELECT语句。方法1:使用SELECT INTO语句。
2025-06-09 14:07:09
285
原创 达梦DB操作记录
方法1:使用 CREATE TABLE …AS SELECT(CTAS)语句(推荐)方法2:使用 CREATE TABLE …LIKE + INSERT SELECT。
2025-06-06 15:06:57
782
原创 jdbcTemplate.query备忘录
执行计划无法复用:即使参数化查询,若每次参数类型变化大(如从INT变VARCHAR),可能导致数据库重新生成执行计划。通过参数化查询,数据库引擎能更高效地工作,尤其在并发高、数据量大时,性能提升可能达到数倍甚至更高。避免在循环中执行查询:改用批量操作(batchUpdate)或IN查询。统一参数类型:确保传入参数类型与数据库列类型一致,避免执行计划失效。小数据量:表数据少或查询次数少时,数据库能快速解析,差距不易察觉。永远使用参数化查询:避免SQL注入 + 提升性能。查询速度为什么差距这么大。
2025-06-05 14:05:34
300
原创 sun连接sqlserver
获取用户: GET http://localhost:8080/api/users/1。7、创建 Controller (UserController.java)2、 配置数据库连接 (application.properties)6、创建 Service 层 (UserService.java)4、创建 Mapper 接口 (UserMapper.java)8、主应用类 (DemoApplication.java)9、SQL Server 建表脚本 (示例)5、创建 Mapper XML。
2025-06-05 14:01:34
289
原创 jdbcTemplate防止注入写法
只要严格使用参数化查询(?参数绑定:通过 PreparedStatement 将参数值与 SQL 语句分离。类型安全:自动处理数据类型转换(如 Date → java.sql.Date)自动转义:JDBC 驱动会自动处理特殊字符(如单引号转义为 ‘’)白名单校验:对于排序字段等必须动态拼接的场景,使用白名单校验。这是最核心的防注入方式,所有动态参数都应该通过参数绑定传递。禁用字符串拼接:永远不要将用户输入直接拼接到 SQL 中。日志监控:启用 SQL 日志,监控异常查询模式。所幸这一期给一个改进写法。
2025-05-29 15:07:24
758
原创 线程de安全性备忘
问题:当其他线程在遍历过程中修改集合(增删元素),会触发 ConcurrentModificationException。关键点:通过 synchronized 块保证遍历过程的原子性,防止并发修改(如多线程同时增删元素)。关键点:通过显式锁控制线程访问,避免 synchronized 的隐式锁机制,灵活性更高。问题:遍历和修改共享资源时未同步,导致数据竞争(Data Race)和脏读。优点:底层通过数据副本实现读写分离,读操作无需加锁,适合读多写少的场景。
2025-05-27 11:06:10
293
原创 sqlserver连接报错问题
The server selected protocol version TLS10 is not accepted by client prefere
2025-05-10 11:14:04
156
原创 设计一个食品种类表
路径字段辅助:path字段存储层级路径(如"1.3.5"),可通过LIKE快速查询子树(如查询所有面食子类:WHERE path LIKE ‘1.%’)需求:设计一个食品种类表,注意食品种类有多层,比如面食下面,面条、方便面,面条下有干面、湿面等。冗余层级字段:level字段避免递归计算层级深度,提升统计效率(如统计所有三级分类数量)一、食品种类表结构设计(food_category)
2025-04-27 17:47:50
356
原创 汽车产业链主表及类别表设计
一、汽车产业链类别表(industry_chain_category)1、核心字段:定义产业链分类(如零部件、整车制造、销售服务等)1、业务字段:包含企业名称、统一社会信用代码等核心信息。2、关联关系:通过category_id外键关联分类表。二、汽车产业链主表(industry_chain)3、业务扩展:预留层级字段支持多级分类。2、主键约束:自增ID作为唯一标识符。3、数据约束:唯一索引防止重复数据。
2025-04-27 11:02:46
507
原创 信用医疗中患者账单设计
3)技术实现:需对接医保系统、医院HIS系统及金融机构接口,确保数据实时交互(如广州市的“四端一体”模式整合医保、医院、银联和银行系统 )1)系统根据患者信用评级(基于政务大数据或银行授信)自动垫付自费部分(如深圳南山区的“银行垫付、国企担保”模式,不占用个人征信额度 )。2)医保部分通过接口实时结算,自费部分由信用额度垫付,生成待还款账单(如北京市的医保实时结算与银行垫付模式)1)信用评估系统:整合政务、医疗、金融数据构建用户画像(如苏州市通过大数据平台完成患者信用建模 )。
2025-04-15 10:44:51
1004
原创 【jv实现区块链交易存证记录】
为了实现这一点,我需要一个方法来验证每个区块的哈希值是否正确,以及每个区块的前一个哈希值是否与前一个区块的哈希值匹配。每个交易的输入应该指向一个未被花费的输出,而输出则表示交易的接收方和金额。哈希值的计算需要使用加密算法,我决定采用SHA-256算法,因为它是区块链中常用的加密算法,能够保证数据的完整性和安全性。此外,还需要验证交易的数字签名是否有效,以确保交易是由合法的发送方发起的。1、如何在Java中构建区块链的基本结构,包括区块的创建、交易的处理和验证等。该文章仅供自己后期项目参考。
2025-03-31 15:40:23
502
原创 一次生产问题排查记录
原因控制器在第二次发送数据时,参数里面有特色符号。导致服务报错,500.由于DTU提供了访问地址,PLC控制器扫码两次,第二次就有问题。控制器调试一下,再次测试。
2025-03-06 10:05:13
187
原创 加密当前时间并创建表
1、获取当前时间戳。2、使用MD5加密时间戳生成ID。3、拼接表名t_key_id。4、使用JDBC执行CREATE TABLE语句。
2025-03-04 16:57:43
370
1
原创 工具类留痕记录2
3、递归或迭代遍历:从当前节点开始,向上查找所有父级节点,向下查找所有子级节点。idToRegionMap:通过区域ID快速找到对应的Region对象。parentIdToChildMap:通过父级ID快速找到所有子区域。2、分组数据:创建一个父级ID到子级列表的映射,便于快速查找和遍历。1、构建数据结构:将区域数据存储在一个列表或集合中。
2025-02-22 15:05:00
328
原创 递归找100以内的奇数和偶数存放在集合
递归应该用来遍历数字,从1到100。每次调用递归函数时,处理当前的数字,判断奇偶性,然后分别添加到对应的列表里。
2025-02-20 13:40:46
247
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅