DataSqlSource增加executeQueryMap方法
This commit is contained in:
@@ -5,6 +5,7 @@ package org.redkale.source;
|
|||||||
|
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
import java.util.function.*;
|
import java.util.function.*;
|
||||||
|
import static org.redkale.source.DataResultSet.formatColumnValue;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
@@ -35,7 +36,7 @@ public interface DataSqlSource extends DataSource {
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
if (type.isPrimitive() || type == byte[].class || type.getName().startsWith("java.")) {
|
if (type.isPrimitive() || type == byte[].class || type.getName().startsWith("java.")) {
|
||||||
return (V) DataResultSet.formatColumnValue(type, rset.getObject(1));
|
return (V) formatColumnValue(type, rset.getObject(1));
|
||||||
}
|
}
|
||||||
return EntityBuilder.load(type).getObjectValue(rset);
|
return EntityBuilder.load(type).getObjectValue(rset);
|
||||||
});
|
});
|
||||||
@@ -46,11 +47,24 @@ public interface DataSqlSource extends DataSource {
|
|||||||
if (type.isPrimitive() || type == byte[].class || type.getName().startsWith("java.")) {
|
if (type.isPrimitive() || type == byte[].class || type.getName().startsWith("java.")) {
|
||||||
List<V> list = new ArrayList<>();
|
List<V> list = new ArrayList<>();
|
||||||
while (rset.next()) {
|
while (rset.next()) {
|
||||||
list.add(rset.wasNull() ? null : (V) DataResultSet.formatColumnValue(type, rset.getObject(1)));
|
list.add(rset.wasNull() ? null : (V) formatColumnValue(type, rset.getObject(1)));
|
||||||
}
|
}
|
||||||
return list;
|
return list;
|
||||||
}
|
}
|
||||||
return EntityBuilder.load(type).getObjectList(rset);
|
return EntityBuilder.load(type).getObjectList(rset);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
default <K, V> Map<K, V> executeQueryMap(Class<K> keyType, Class<V> valType, String sql) {
|
||||||
|
return executeQuery(sql, rset -> {
|
||||||
|
Map<K, V> map = new LinkedHashMap<K, V>();
|
||||||
|
while (rset.next()) {
|
||||||
|
if (!rset.wasNull()) {
|
||||||
|
map.put((K) formatColumnValue(keyType, rset.getObject(1)), (V) formatColumnValue(valType, rset.getObject(2)));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return map;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user