求助大神 PageHelper limit 出现两次的问题

public class MyBatisTest {
    public static SqlSessionFactory sqlSessionFactory=null;


    public static SqlSessionFactory getSqlSessionFactory(){
        if(sqlSessionFactory==null){
            String resource="mybatis-config.xml";
            Reader reader= null ;
            try {
                reader = Resources.getResourceAsReader(resource);
                sqlSessionFactory=new SqlSessionFactoryBuilder().build(reader);
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
        return sqlSessionFactory;
    }
    public void getAllPersons(){

        SqlSession sqlSession = this.getSqlSessionFactory().openSession();

        **PersonMapper personMapper = sqlSession.getMapper(PersonMapper.class);
        Page page=PageHelper.startPage(1,10,false);**

        List persons=personMapper.getAllPersons();
        for (Person person:persons) {
            System.out.println(person.getId());

        }
    }

    public static void main(String[] args) {

        new MyBatisTest().getAllPersons();
    }
}

 
  

如果不加 PageHelper查询没有问题 但是加了之后就会报错

DEBUG 04-25 15:02:26,196 ==>  Preparing: select * from person LIMIT 10 LIMIT 10   (BaseJdbcLogger.java:181) 
DEBUG 04-25 15:02:26,255 ==> Parameters:   (BaseJdbcLogger.java:181) 
Exception in thread "main" org.apache.ibatis.exceptions.PersistenceException: 
### Error querying database.  Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'LIMIT 10' at line 1
### The error may exist in mybatis/PersonMapper.xml
### The error may involve defaultParameterMap
### The error occurred while setting parameters
### SQL: select * from person LIMIT 10 LIMIT 10
### Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'LIMIT 10' at line 1
 at org.apache.ibatis.exceptions.ExceptionFactory.wrapException(ExceptionFactory.java:30)
 at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:150)
 at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:141)
 at org.apache.ibatis.binding.MapperMethod.executeForMany(MapperMethod.java:137)
 at org.apache.ibatis.binding.MapperMethod.execute(MapperMethod.java:75)
 at org.apache.ibatis.binding.MapperProxy.invoke(MapperProxy.java:59)
 at com.sun.proxy.$Proxy7.getAllPersons(Unknown Source)
 at com.imooc.mybatis.test.MyBatisTest.getAllPersons(MyBatisTest.java:40)
 at com.imooc.mybatis.test.MyBatisTest.main(MyBatisTest.java:49)
Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'LIMIT 10' at line 1
 at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
 at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
 at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
 at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:488)
 at com.mysql.jdbc.Util.handleNewInstance(Util.java:425)
 at com.mysql.jdbc.Util.getInstance(Util.java:408)
 at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:943)
 at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3973)
 at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3909)
 at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2527)
 at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2680)
 at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2501)
 at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:1858)
 at com.mysql.jdbc.PreparedStatement.execute(PreparedStatement.java:1197)
 at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
 at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
 at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
 at java.base/java.lang.reflect.Method.invoke(Method.java:564)
 at org.apache.ibatis.logging.jdbc.PreparedStatementLogger.invoke(PreparedStatementLogger.java:59)
 at com.sun.proxy.$Proxy8.execute(Unknown Source)
 at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:63)
 at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:79)
 at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:63)
 at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:324)
 at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:156)
 at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:109)
 at com.github.pagehelper.PageInterceptor.intercept(PageInterceptor.java:134)
 at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)
 at com.sun.proxy.$Proxy6.query(Unknown Source)
 at com.github.pagehelper.PageInterceptor.intercept(PageInterceptor.java:134)
 at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)
 at com.sun.proxy.$Proxy6.query(Unknown Source)
 at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:148)
 ... 7 more

错误显示有两个LIMIT 但是 Mapper.xml 也没有LIMIT


希望大神能给个提示

解决了 换了一个jar包从com.github.pagehelper 5.0.0换到了 5.10 然后把 之前的 plugin 给注解了 ,rebuild项目 就好了 也不知道啥原因 小白一个。

你可能感兴趣的:(求助大神 PageHelper limit 出现两次的问题)