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.BeanListHandler
和
org.apache.commons.dbutils.QueryRunner
但在运行我的项目之后,它的错误就是:
您的SQL语法有错误;检查手册 对应于您的MySQL服务器版本,以便使用正确的语法 靠近&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;在第1行查询:按英雄顺序选择* desc限制?,?参数:[start,count]
我知道程序中有问题,但我不想找到所有,我只想找到使用限制的表格的一部分? (我只知道这个sql语句可以做到这一点。)
你可以帮帮我吗?答案 0 :(得分:1)
您将字符串作为参数传递,因此它将SQL限制按字面运行为LIMIT 'start','count'
请改为尝试:
Object params[] = {start, count };
这样您就可以构建实际int
值的参数数组(现在自动生成Integer
}