From f3a987dde90f47b028cdce541ef97b474994e150 Mon Sep 17 00:00:00 2001 From: youpaishidifu <1@ypshidifu.cn> Date: Wed, 7 Oct 2026 13:47:56 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8DsetField=E5=AF=B9null?= =?UTF-8?q?=E5=86=99=E6=88=90=E5=AD=97=E9=9D=A2=E9=87=8Fnull=E5=AF=BC?= =?UTF-8?q?=E8=87=B4credentials=E6=AF=8F=E8=BD=AE=E6=81=92=E5=AE=9A?= =?UTF-8?q?=E8=A1=A5=E6=8E=A81=EF=BC=9A=E6=94=B9setNull=E5=B9=B6=E5=90=AF?= =?UTF-8?q?=E5=8A=A8=E8=87=AA=E6=84=88=E6=B8=85=E7=90=86=E5=AD=98=E9=87=8F?= =?UTF-8?q?=E8=84=8F=E6=95=B0=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/Sdf1_login/DatabaseManager.java | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/src/main/java/Sdf1_login/DatabaseManager.java b/src/main/java/Sdf1_login/DatabaseManager.java index 29f6976..6d32b8e 100644 --- a/src/main/java/Sdf1_login/DatabaseManager.java +++ b/src/main/java/Sdf1_login/DatabaseManager.java @@ -123,6 +123,15 @@ public class DatabaseManager { safeAdd(st, "twofa_recovery_codes", "TEXT DEFAULT ''"); + // ★ 一次性自愈:历史版本 setField(null) 曾把 temp_password + // 写成字面量 'null',会让 credentials 指纹永久不一致、 + // 对账每轮补推。启动时统一清回 SQL NULL。 + try { + st.executeUpdate("UPDATE users SET temp_password=NULL " + + "WHERE temp_password='null'"); + } catch (SQLException ignored) { + } + // ===== 背包备份表:安全迁移 ===== // 检查旧表是否存在(用 inventory_data 列判断) boolean hasOldTable = false; @@ -923,6 +932,11 @@ public class DatabaseManager { ps.setInt(1, (Integer) val); else if (val instanceof Long) ps.setLong(1, (Long) val); + // ★ null 必须写 SQL NULL:走 String.valueOf(null) 会把 + // temp_password 写成字面量 'null',两端指纹永不一致, + // 对账每轮恒定补推(2026-10-07 测试服 credentials 补推1 根因) + else if (val == null) + ps.setNull(1, java.sql.Types.VARCHAR); else ps.setString(1, String.valueOf(val));