解决方案 »

  1.   

    debug  下,看样子好像不错
      

  2.   

    prep.setInt(1, countPerPage);
    prep.setInt(2,(currentPageIndex-1) *countPerPage);貌似是从1开始,不是0,所以报错说你0超出范围。
      

  3.   


    应该是这个问题,索引的问题在那儿能不能告诉我一下,这个SQL语句中${top}这个变量的这种语法是Spring的语法吗?到了数据库可以解析吗?
      

  4.   


    应该是这个问题,索引的问题在那儿能不能告诉我一下,这个SQL语句中${top}这个变量的这种语法是Spring的语法吗?到了数据库可以解析吗?
    应该不行吧,我记得JDBC的prparedstatement是用问号占位的,你直接写成问号就行了,然后给问号赋值。你试试。
      

  5.   


    应该是这个问题,索引的问题在那儿能不能告诉我一下,这个SQL语句中${top}这个变量的这种语法是Spring的语法吗?到了数据库可以解析吗?
    应该不行吧,我记得JDBC的prparedstatement是用问号占位的,你直接写成问号就行了,然后给问号赋值。你试试。
    对呀,既然使用问号占位,为什么楼主的不写问号,诡异的是,竟然大家都没有提出来过,很奇怪
      

  6.   

    对于这样的问题,解决的方法一般都是debug一下,找到出错的代码行数,然后就知道如何下手了;
      

  7.   

    SQL应该是有问题的,prep.setInt(0, countPerPage);,这里的第一个参数是从1开始,不是0;
    这个方法设置占位符的参数,占位数是?问号,我想,你这种方式应该是有问题的!
      

  8.   

    问题解决了..应该是这样子写:String sql="SELECT TOP "+countPerPage+" * FROM d_goods WHERE id NOT IN(SELECT TOP "+(currentPageIndex-1) *countPerPage+" id FROM d_goods ORDER BY id) ORDER BY id";
    因为top这个关键字的问题..后面不能有占位符“?”,然后自然也就不能set,所以把要放的写在SQL语句里就好了