Java教程

MyBatis-Plus踩坑:自动生成的sql语句中出现乱码( # é??è????a?? é?¤???(é??è?¤??o 0)

本文主要是介绍MyBatis-Plus踩坑:自动生成的sql语句中出现乱码( # é??è????a?? é?¤???(é??è?¤??o 0),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

新手踩坑,今天用mybatis-plus的自动分页功能,按照官方文档中给出的关于分页功能的配置配好之后,在测试类中运行测试代码,发现出问题了,报了一个很奇怪的异常,网上搜索半天,没有答案,异常如下:

org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.exceptions.PersistenceException: 
### Error querying database.  Cause: com.baomidou.mybatisplus.core.exceptions.MybatisPlusException: Error: Method queryTotal execution error of sql : 
 SELECT COUNT(1) FROM ( SELECT  id,qst_id,qst_content,opa,opa_score,opb,opb_score,opc,opc_score,opd,opd_score,max_score,create_time,update_time,is_deleted  FROM question 
 WHERE is_deleted=0 # é€»è¾‘æœªåˆ é™¤å€¼(默认为 0) ) TOTAL 

### The error may exist in com/trisirt/exam/psycho_test/dao/QuestionMapper.java (best guess)
### The error may involve defaultParameterMap
### The error occurred while setting parameters
### Cause: com.baomidou.mybatisplus.core.exceptions.MybatisPlusException: Error: Method queryTotal execution error of sql : 
 SELECT COUNT(1) FROM ( SELECT  id,qst_id,qst_content,opa,opa_score,opb,opb_score,opc,opc_score,opd,opd_score,max_score,create_time,update_time,is_deleted  FROM question 
 WHERE is_deleted=0 # é€»è¾‘æœªåˆ é™¤å€¼(默认为 0) ) TOTAL 
 ......

在这里插入图片描述
可以看到mybatis-plus底层在自动生成sql语句时产生了乱码,导致sql语句无法被mysql解析,出现错误。最后花了一上午的时间,通过新建另外一个项目,从头开始配置springboot环境,最终定位到了出错的地方:
我的项目之前配置了逻辑删除的功能,当时按照官网给出的配置,没有注意到其中一个细节:
在这里插入图片描述

我的天,就是上面那句,“3.3.0版本以后可以忽略步骤2的配置”,而我的mybatis-plus版本是3.3.1,在apllication.properties文件中配置了逻辑删除的属性之后,又在实体类的字段上打了@TableLogic注解,最终就酿成了上面分页功能翻车,裂开!记录一下。
配置文件
在这里插入图片描述
将上面实体类中的@TableLogic注解删掉,问题解决,测试类中分页功能正常。
在这里插入图片描述

这篇关于MyBatis-Plus踩坑:自动生成的sql语句中出现乱码( # é??è????a?? é?¤???(é??è?¤??o 0)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!