From f3605ebbb111936e7c4effed24b08399910bf2a8 Mon Sep 17 00:00:00 2001
From: luxiaotao1123 <t1341870251@63.com>
Date: 星期四, 08 十二月 2022 13:39:32 +0800
Subject: [PATCH] #
---
src/main/java/com/zy/common/service/erp/ErpSqlServer.java | 66 ++++++++++++++++++++++++++++++++-
1 files changed, 64 insertions(+), 2 deletions(-)
diff --git a/src/main/java/com/zy/common/service/erp/ErpSqlServer.java b/src/main/java/com/zy/common/service/erp/ErpSqlServer.java
index 37c7b15..9c2e716 100644
--- a/src/main/java/com/zy/common/service/erp/ErpSqlServer.java
+++ b/src/main/java/com/zy/common/service/erp/ErpSqlServer.java
@@ -1,6 +1,5 @@
package com.zy.common.service.erp;
-import com.core.common.Cools;
import com.zy.common.properties.ErpDbProperties;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
@@ -10,8 +9,13 @@
import java.io.ByteArrayOutputStream;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
+import java.lang.reflect.Constructor;
+import java.lang.reflect.Field;
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Modifier;
import java.sql.*;
import java.util.ArrayList;
+import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@@ -46,7 +50,7 @@
List<T> list = new ArrayList<>();
if (null != result) {
for (Map<String, Object> entity : result) {
- list.add(Cools.conver(entity, cls));
+ list.add(conver(entity, cls));
}
}
return list;
@@ -67,6 +71,64 @@
/********************************* 鏍稿績灞� *********************************/
/*****************************************************************************/
+ /**
+ * map 杞� 瀵硅薄
+ */
+ public static <T> T conver(Map<? extends String, ?> map, Class<T> cls){
+ T instance = null;
+ try {
+ Constructor<T> constructor = cls.getDeclaredConstructor();
+ boolean constructorAccessible = constructor.isAccessible();
+ constructor.setAccessible(true);
+ instance = constructor.newInstance();
+ constructor.setAccessible(constructorAccessible);
+ } catch (IllegalAccessException | InstantiationException | NoSuchMethodException | InvocationTargetException e) {
+ e.printStackTrace();
+ }
+ Class<?> prototype = cls;
+ do {
+ for (Field field : prototype.getDeclaredFields()){
+ if (Modifier.isFinal(field.getModifiers())
+ || Modifier.isStatic(field.getModifiers())
+ || Modifier.isTransient(field.getModifiers())){
+ continue;
+ }
+ String fieldName = field.getName();
+ Object val = null;
+ if (map.containsKey(fieldName)){
+ val = map.get(fieldName);
+ }
+ if (val != null){
+ boolean fieldAccessible = field.isAccessible();
+ field.setAccessible(true);
+ Class<?> type = field.getType();
+ try {
+ if (type.equals(Date.class)) {
+ Constructor<?> constructor = type.getDeclaredConstructor(Date.class);
+ boolean constructorAccessible = constructor.isAccessible();
+ constructor.setAccessible(true);
+ field.set(instance, constructor.newInstance(val));
+ constructor.setAccessible(constructorAccessible);
+ } else {
+ Constructor<?> constructor = type.getDeclaredConstructor(String.class);
+ boolean constructorAccessible = constructor.isAccessible();
+ constructor.setAccessible(true);
+ field.set(instance, constructor.newInstance(String.valueOf(val)));
+ constructor.setAccessible(constructorAccessible);
+ }
+ } catch (IllegalAccessException
+ | InstantiationException
+ | InvocationTargetException
+ | NoSuchMethodException e) {
+ System.err.println("convert error ===> Class["+prototype+"],Field:["+fieldName+"],Type:["+type+"],Value:["+val+"]");
+ }
+ field.setAccessible(fieldAccessible);
+ }
+ }
+ prototype = prototype.getSuperclass();
+ } while (!Object.class.equals(prototype));
+ return instance;
+ }
private List<Map<String, Object>> executeQuery(String sql) {
Connection conn = null;
--
Gitblit v1.9.1