From ebc090c43781133cb73a330f2ea2a3884906b85e Mon Sep 17 00:00:00 2001 From: liangdaliang Date: Fri, 7 Mar 2025 15:02:59 +0800 Subject: [PATCH] =?UTF-8?q?=E9=80=82=E9=85=8DTinyInt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../common/utils/sql/TinyIntTypeAdapter.java | 13 +++++-------- .../service/impl/TestCaseServiceImpl.java | 19 ++++++++++--------- 2 files changed, 15 insertions(+), 17 deletions(-) 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 index 1fdaa81..d85da88 100644 --- 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 @@ -11,21 +11,18 @@ import java.io.IOException; * @Description: * @date 2025-03-07 13:32 */ -public class TinyIntTypeAdapter extends TypeAdapter { +public class TinyIntTypeAdapter extends TypeAdapter { @Override - public void write(JsonWriter out, Number value) throws IOException { + public void write(JsonWriter out, Byte value) throws IOException { if (value == null) { out.nullValue(); } else { - out.value(value.intValue()); // 强制转换为整数 + out.value(value.intValue()); } } @Override - public Number read(JsonReader in) throws IOException { - if (in.peek() == null) { - return null; - } - return in.nextInt(); // 读取为整数 + public Byte read(JsonReader in) throws IOException { + throw new UnsupportedOperationException("Unreadable"); } } 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 0614666..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 @@ -1,12 +1,14 @@ package com.test.test.service.impl; -import com.fasterxml.jackson.databind.ObjectMapper; +import com.fatboyindustrial.gsonjavatime.LocalDateTimeConverter; import com.google.gson.Gson; +import com.google.gson.GsonBuilder; import com.google.gson.reflect.TypeToken; 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; @@ -25,6 +27,7 @@ import org.springframework.stereotype.Service; import org.springframework.util.CollectionUtils; import java.lang.reflect.Type; +import java.time.LocalDateTime; import java.util.ArrayList; import java.util.HashMap; import java.util.List; @@ -258,14 +261,12 @@ public class TestCaseServiceImpl implements ITestCaseService SqlResult sqlResult = new SqlResult(); 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)); - ObjectMapper objectMapper = new ObjectMapper(); - testCaseResult.setSqlResult(objectMapper.writeValueAsString(sqlResult)); + 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)); // 处理参数提取 Map assignmentResultMap = new HashMap<>(); String assignmentResult = this.dealDataSourceTestCaseStepAssignment(resultMapList, assignmentResultMap, assignment);