NutzCN Logo
问答 Callback关于整型数据的问题
发布于 2310天前 作者 mulhyac 1700 次浏览 复制 上一个帖子 下一个帖子
标签:
import org.nutz.dao.sql.Sql;
import org.nutz.dao.sql.SqlCallback;

import java.lang.reflect.ParameterizedType;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.LinkedHashMap;
import java.util.Map;

public class ValueMapCallback<K, V> implements SqlCallback {

    @Override
    public Map<K, V> invoke(Connection conn, ResultSet rs, Sql sql) throws SQLException {
        Map<K, V> result = new LinkedHashMap<K, V>();
        Class<V> clazz = (Class<V>) ((ParameterizedType) getClass().getGenericSuperclass()).getActualTypeArguments()[1];
        while (rs.next()) {
            K k = (K) rs.getObject(1);
            V v;
            if (clazz == Integer.class) {
                v = (V) rs.getObject(2);
            } else {
                v = (V) rs.getObject(2);
            }
            result.put(k, v);
        }
        return result;
    }

}

SELECT first_judge_id user_id,COUNT(ui.pk_user_id) audit_count FROM user_info ui WHERE user_first_credit_time>'2018-08-26 00:00:00' and first_judge_id>0 group by ui.first_judge_id ORDER BY audit_count asc
sql.setCallback(new ValueMapCallback<Integer, Integer>());

最得到的结果value居然是Long类型的?求教问题出哪里了

4 回复

那if判断什么作用吗?都是一样的语句

if当它不存在就是了,这个类型为什么我定义的Integer,为什么会只在成为Long

是发现这个问题以后,想处理一下,但没处理好

ts.getObject 是根据数据库类型决定的

来自炫酷的 NutzCN

添加回复
请先登陆
回到顶部