From 8479c4b094d8fd5117a653e486003b6eb5c5efef Mon Sep 17 00:00:00 2001 From: liangdaliang Date: Fri, 7 Mar 2025 13:34:22 +0800 Subject: [PATCH] =?UTF-8?q?sql=E6=89=A7=E8=A1=8CtinyInt=E5=AD=97=E6=AE=B5?= =?UTF-8?q?=E9=80=82=E9=85=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../common/utils/sql/TinyIntTypeAdapter.java | 31 +++++++++++++++++++ .../service/impl/TestCaseServiceImpl.java | 3 ++ 2 files changed, 34 insertions(+) create mode 100644 test-common/src/main/java/com/test/common/utils/sql/TinyIntTypeAdapter.java diff --git a/test-common/src/main/java/com/test/common/utils/sql/TinyIntTypeAdapter.java b/test-common/src/main/java/com/test/common/utils/sql/TinyIntTypeAdapter.java new file mode 100644 index 0000000..1fdaa81 --- /dev/null +++ b/test-common/src/main/java/com/test/common/utils/sql/TinyIntTypeAdapter.java @@ -0,0 +1,31 @@ +package com.test.common.utils.sql; + +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; + +import java.io.IOException; + +/** + * @author liangdaliang + * @Description: + * @date 2025-03-07 13:32 + */ +public class TinyIntTypeAdapter extends TypeAdapter { + @Override + public void write(JsonWriter out, Number value) throws IOException { + if (value == null) { + out.nullValue(); + } else { + out.value(value.intValue()); // 强制转换为整数 + } + } + + @Override + public Number read(JsonReader in) throws IOException { + if (in.peek() == null) { + return null; + } + return in.nextInt(); // 读取为整数 + } +} diff --git a/test-test/src/main/java/com/test/test/service/impl/TestCaseServiceImpl.java b/test-test/src/main/java/com/test/test/service/impl/TestCaseServiceImpl.java index baed232..92d7178 100644 --- a/test-test/src/main/java/com/test/test/service/impl/TestCaseServiceImpl.java +++ b/test-test/src/main/java/com/test/test/service/impl/TestCaseServiceImpl.java @@ -8,6 +8,7 @@ import com.test.common.utils.DateUtils; import com.test.common.utils.JMeterUtil; import com.test.common.utils.MySQLExecutor; import com.test.common.utils.StringUtils; +import com.test.common.utils.sql.TinyIntTypeAdapter; import com.test.test.domain.TestCase; import com.test.test.domain.TestCaseResult; import com.test.test.domain.TestCaseStep; @@ -261,6 +262,8 @@ public class TestCaseServiceImpl implements ITestCaseService sqlResult.setColumnNameList(columnNameList); sqlResult.setResultMapList(resultMapList); Gson gson = new GsonBuilder() + .registerTypeAdapter(Integer.class, new TinyIntTypeAdapter()) + .registerTypeAdapter(int.class, new TinyIntTypeAdapter()) .registerTypeAdapter(LocalDateTime.class, new LocalDateTimeConverter()) .create(); testCaseResult.setSqlResult(gson.toJson(sqlResult));