目 录CONTENT

文章目录

分页插件PageHelp 和 解决MySQL server version for the right syntax to use near ‘LIMIT 10‘ at line 1问题

米尔嘉
2023-04-16 / 0 评论 / 0 点赞 / 352 阅读 / 463 字 / 正在检测是否收录...
温馨提示:
本文最后更新于 2023-07-04,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

改了两天的bug 都快奔溃了 终于找到了解决方法。
一直以为是sql语句错误,万万没想到是加了分号的问题。

报错类型

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

解决方法

1.导入依赖

<dependency>
    <groupId>com.github.pagehelper</groupId>
    <artifactId>pagehelper</artifactId>
    <version>5.0.2</version>
</dependency>

2.在Spring-dao中进行文件配置

<!--配置SqlSessionFactory-->
    <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
        <property name="dataSource" ref="dataSource"></property>
        <property name="configLocation" value="classpath:sqlMapConfig.xml"></property>
 
        <!-- 传入PageHelper的插件 -->
        <property name="plugins">
            <array>
                <!-- 传入插件的对象 -->
                <bean class="com.github.pagehelper.PageInterceptor">
                    <property name="properties">
                        <props>
                            <prop key="helperDialect">mysql</prop>
                            <prop key="reasonable">true</prop>
                        </props>
                    </property>
                </bean>
            </array>
        </property>
 
    </bean>

3.1在Service层中需要传入 Page 和 limit

public ResultMsg<Product> findAll(Integer page, Integer limit) 
public ResultMsg<Product> findAll(Integer page,Integer limit) {
        ResultMsg<Product> resultMsg = new ResultMsg<Product>();
        resultMsg.setCode(0);
        //使用分页插件完成分页
        //page 和limit由前端页面给出
        PageHelper.startPage(page,limit);
        PageInfo<Product> pageInfo = new PageInfo<Product>(productMapper.findAll()); 
        //获取查询到的集合
        resultMsg.setData(pageInfo.getList());
        //获取查询数据的总条数
        resultMsg.setCount(pageInfo.getTotal());
        resultMsg.setMsg("成功响应");
        return resultMsg;
}

3.2在Controller层

    //查询
    @RequestMapping("findAll")
    @ResponseBody
    public ResultMsg<Product> findAll(Integer page,Integer limit){
        return productService.findAll(page,limit);
    }

注意:
在 Mapper.xml文件的sql语句中最后不要添加";"号,不然会报错。

参考文章:

0

评论区