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 @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); return source.getMapResult(entityClass, keyColumn, reckon, reckonColumn);
} }
@Override @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)); return getMapResult(entityClass, keyColumn, reckon, reckonColumn, FilterNodeBean.createFilterNode(bean));
} }
@Override @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); return source.getMapResult(entityClass, keyColumn, reckon, reckonColumn, node);
} }

View File

@@ -1110,17 +1110,17 @@ public final class DataDefaultSource implements DataSource, Nameable, Function<C
//-----------------------getMapResult----------------------------- //-----------------------getMapResult-----------------------------
@Override @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); return getMapResult(entityClass, keyColumn, reckon, reckonColumn, (FilterNode) null);
} }
@Override @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)); return getMapResult(entityClass, keyColumn, reckon, reckonColumn, FilterNodeBean.createFilterNode(bean));
} }
@Override @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(); final Connection conn = createReadSQLConnection();
try { try {
final EntityInfo info = loadEntityInfo(entityClass); 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; + " 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); if (debug.get() && info.isLoggable(Level.FINEST)) logger.finest(entityClass.getSimpleName() + " single sql=" + sql);
final PreparedStatement prestmt = conn.prepareStatement(sql); final PreparedStatement prestmt = conn.prepareStatement(sql);
Map<K, V> rs = new LinkedHashMap<>(); Map<K, N> rs = new LinkedHashMap<>();
ResultSet set = prestmt.executeQuery(); ResultSet set = prestmt.executeQuery();
ResultSetMetaData rsd = set.getMetaData(); ResultSetMetaData rsd = set.getMetaData();
boolean smallint = rsd.getColumnType(1) == Types.SMALLINT; boolean smallint = rsd.getColumnType(1) == Types.SMALLINT;
while (set.next()) { 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(); set.close();
prestmt.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 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---------------------------- //-----------------------find----------------------------
/** /**
@@ -171,6 +171,21 @@ public interface DataSource {
public <T, V> List<V> queryColumnList(String selectedColumn, Class<T> clazz, FilterBean bean); 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 接口 * Map 接口
* <p> * <p>
@@ -219,20 +234,14 @@ public interface DataSource {
//-----------------------sheet---------------------------- //-----------------------sheet----------------------------
/** /**
* 根据指定参数查询对象某个字段的集合 * 根据指定参数查询对象某个对象的集合
* <p> * <p>
* @param <T> * @param <T>
* @param <V>
* @param selectedColumn
* @param clazz * @param clazz
* @param flipper * @param flipper
* @param bean * @param bean
* @return * @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 FilterBean bean);
public <T> Sheet<T> querySheet(final Class<T> clazz, final Flipper flipper, final FilterNode node); public <T> Sheet<T> querySheet(final Class<T> clazz, final Flipper flipper, final FilterNode node);