1
    public List<Hero> list() throws SQLException {
        return list(0, Short.MAX_VALUE);
    }

    public List<Hero> list(int start, int count) throws SQLException{

             Connection c = this.getConnection();                
             QueryRunner runner = new QueryRunner();
             String sql = "select * from hero order by id desc limit ?,? ";  
             Object params[] = {"start", "count" };                               
             List<Hero> heros = (List<Hero>) runner.query(c,sql,new BeanListHandler(Hero.class),params);     

             DbUtils.closeQuietly(c);    

             return heros;
    }

在此之前,我已经导入了我需要的 Dbutils JAR,例如org.apache.commons.dbutils.handlers.BeanListHandlerorg.apache.commons.dbutils.QueryRunner 但是在运行我的项目之后,它出错了,其消息是:

您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 1 行的 ''start','count'' 附近使用正确的语法 Query: select * from hero order by id desc limit ?,? 参数:[开始,计数]

我知道程序中有问题,但我不想找到所有内容,我只想使用 limit 找到我表的一部分?。?(我只知道这个sql语句可以做到)。

你能帮帮我吗?

4

1 回答 1

1

您将字符串作为参数传递,因此它的 SQL 限制字面意思为LIMIT 'start','count'

试试这个:

Object params[] = {start, count };

这样您就可以构建实际int值的参数数组(现在自动装箱为Integer

于 2017-04-20T03:07:01.067 回答