java:我的DButils的QueryRuner为什么会这样...

注意红线的那一行

图片描述

官方文档
我认为我这里用的应该是该类的All methods中的第六个方法

<T> List<T>    execute(String sql, ResultSetHandler<T> rsh, Object... params)

应当返回List<Schedule>

某些人真的是睿智,问题么不能回答,点踩倒是点的很勤快,呵呵.

阅读 2.4k
2 个回答

你传入的 ResultSetHandler<T> 有问题。这里你传入的是 BeanListHandler<T>
看一下他的实现这里本身就是一个List<T>, 我猜这里传入一个BeanHandler<T> 应该可以解决你的问题。

public class BeanListHandler<T>
extends Object
implements ResultSetHandler<List<T>>

这里省略了部分代码,核心部分如下。你查看BeanListHandler<T>的handle方法会发现这里的返回值是一个List,最后就变成了List<List<Schedule>>

private <T> List<T> execute(Connection conn, boolean closeConn, String sql, ResultSetHandler<T> rsh, Object... params) throws SQLException {     
        List<T> results = new LinkedList<T>();
        ResultSet rs = null;
        rs = this.wrap(stmt.getResultSet());
        results.add(rsh.handle(rs));
        return results;
    }
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题