This commit is contained in:
wentch
2015-12-10 11:38:04 +08:00
parent a4a8d32c75
commit af991ed7eb
3 changed files with 27 additions and 18 deletions

View File

@@ -155,17 +155,17 @@ public class DataSourceService implements DataSource, Service {
}
@Override
public <K extends Serializable, V extends Number> Map<K, V> getMapResult(Class entityClass, String keyColumn, Reckon reckon, String reckonColumn) {
public <T, K extends Serializable, N extends Number> Map<K, N> getMapResult(Class<T> entityClass, String keyColumn, Reckon reckon, String reckonColumn) {
return source.getMapResult(entityClass, keyColumn, reckon, reckonColumn);
}
@Override
public final <K extends Serializable, V extends Number> Map<K, V> getMapResult(Class entityClass, String keyColumn, Reckon reckon, String reckonColumn, FilterBean bean) {
public final <T, K extends Serializable, N extends Number> Map<K, N> getMapResult(Class<T> entityClass, String keyColumn, Reckon reckon, String reckonColumn, FilterBean bean) {
return getMapResult(entityClass, keyColumn, reckon, reckonColumn, FilterNodeBean.createFilterNode(bean));
}
@Override
public <K extends Serializable, V extends Number> Map<K, V> getMapResult(Class entityClass, String keyColumn, Reckon reckon, String reckonColumn, FilterNode node) {
public <T, K extends Serializable, N extends Number> Map<K, N> getMapResult(Class<T> entityClass, String keyColumn, Reckon reckon, String reckonColumn, FilterNode node) {
return source.getMapResult(entityClass, keyColumn, reckon, reckonColumn, node);
}

View File

@@ -1110,17 +1110,17 @@ public final class DataDefaultSource implements DataSource, Nameable, Function<C
//-----------------------getMapResult-----------------------------
@Override
public <K extends Serializable, V extends Number> Map<K, V> getMapResult(Class entityClass, final String keyColumn, Reckon reckon, final String reckonColumn) {
public <T, K extends Serializable, N extends Number> Map<K, N> getMapResult(final Class<T> entityClass, final String keyColumn, Reckon reckon, final String reckonColumn) {
return getMapResult(entityClass, keyColumn, reckon, reckonColumn, (FilterNode) null);
}
@Override
public <K extends Serializable, V extends Number> Map<K, V> getMapResult(Class entityClass, final String keyColumn, Reckon reckon, final String reckonColumn, FilterBean bean) {
public <T, K extends Serializable, N extends Number> Map<K, N> getMapResult(final Class<T> entityClass, final String keyColumn, Reckon reckon, final String reckonColumn, FilterBean bean) {
return getMapResult(entityClass, keyColumn, reckon, reckonColumn, FilterNodeBean.createFilterNode(bean));
}
@Override
public <K extends Serializable, V extends Number> Map<K, V> getMapResult(final Class entityClass, final String keyColumn, final Reckon reckon, final String reckonColumn, FilterNode node) {
public <T, K extends Serializable, N extends Number> Map<K, N> getMapResult(final Class<T> entityClass, final String keyColumn, final Reckon reckon, final String reckonColumn, FilterNode node) {
final Connection conn = createReadSQLConnection();
try {
final EntityInfo info = loadEntityInfo(entityClass);
@@ -1138,12 +1138,12 @@ public final class DataDefaultSource implements DataSource, Nameable, Function<C
+ " FROM " + info.getTable() + " a" + (join == null ? "" : join) + ((where == null || where.length() == 0) ? "" : (" WHERE " + where)) + " GROUP BY a." + sqlkey;
if (debug.get() && info.isLoggable(Level.FINEST)) logger.finest(entityClass.getSimpleName() + " single sql=" + sql);
final PreparedStatement prestmt = conn.prepareStatement(sql);
Map<K, V> rs = new LinkedHashMap<>();
Map<K, N> rs = new LinkedHashMap<>();
ResultSet set = prestmt.executeQuery();
ResultSetMetaData rsd = set.getMetaData();
boolean smallint = rsd.getColumnType(1) == Types.SMALLINT;
while (set.next()) {
rs.put((K) (smallint ? set.getShort(1) : set.getObject(1)), (V) set.getObject(2));
rs.put((K) (smallint ? set.getShort(1) : set.getObject(1)), (N) set.getObject(2));
}
set.close();
prestmt.close();

View File

@@ -116,11 +116,11 @@ public interface DataSource {
public Number getNumberResult(final Class entityClass, final Reckon reckon, final String column, FilterNode node);
public <K extends Serializable, V extends Number> Map<K, V> getMapResult(Class entityClass, final String keyColumn, Reckon reckon, final String reckonColumn);
public <T, K extends Serializable, N extends Number> Map<K, N> getMapResult(Class<T> entityClass, final String keyColumn, Reckon reckon, final String reckonColumn);
public <K extends Serializable, V extends Number> Map<K, V> getMapResult(Class entityClass, final String keyColumn, Reckon reckon, final String reckonColumn, FilterBean bean);
public <T, K extends Serializable, N extends Number> Map<K, N> getMapResult(Class<T> entityClass, final String keyColumn, Reckon reckon, final String reckonColumn, FilterBean bean);
public <K extends Serializable, V extends Number> Map<K, V> getMapResult(Class entityClass, final String keyColumn, Reckon reckon, final String reckonColumn, FilterNode node);
public <T, K extends Serializable, N extends Number> Map<K, N> getMapResult(Class<T> entityClass, final String keyColumn, Reckon reckon, final String reckonColumn, FilterNode node);
//-----------------------find----------------------------
/**
@@ -171,6 +171,21 @@ public interface DataSource {
public <T, V> List<V> queryColumnList(String selectedColumn, Class<T> clazz, FilterBean bean);
/**
* 根据指定参数查询对象某个字段的集合
* <p>
* @param <T>
* @param <V>
* @param selectedColumn
* @param clazz
* @param flipper
* @param bean
* @return
*/
public <T, V> Sheet<V> queryColumnSheet(final String selectedColumn, final Class<T> clazz, final Flipper flipper, final FilterBean bean);
public <T, V> Sheet<V> queryColumnSheet(final String selectedColumn, final Class<T> clazz, final Flipper flipper, final FilterNode node);
/**
* Map 接口
* <p>
@@ -219,20 +234,14 @@ public interface DataSource {
//-----------------------sheet----------------------------
/**
* 根据指定参数查询对象某个字段的集合
* 根据指定参数查询对象某个对象的集合
* <p>
* @param <T>
* @param <V>
* @param selectedColumn
* @param clazz
* @param flipper
* @param bean
* @return
*/
public <T, V> Sheet<V> queryColumnSheet(final String selectedColumn, final Class<T> clazz, final Flipper flipper, final FilterBean bean);
public <T, V> Sheet<V> queryColumnSheet(final String selectedColumn, final Class<T> clazz, final Flipper flipper, final FilterNode node);
public <T> Sheet<T> querySheet(final Class<T> clazz, final Flipper flipper, final FilterBean bean);
public <T> Sheet<T> querySheet(final Class<T> clazz, final Flipper flipper, final FilterNode node);