Problemas encontrados na operação de paginação MybatisPlus

1. O surgimento de problemas

Depois que a consulta de paginação do funcionário for gravada, o teste será executado e um erro será relatado:数据库异常,操作失败!
Insira a descrição da imagem aqui

2. Verifique a instrução SQL de acordo com as instruções

Em primeiro lugar, suspeite: o serviço MySQL não foi iniciado, ou o servidor está fora do ar, ou há um problema com a ortografia da instrução SQL.
Copiei o log SQL do console para o Navicat e a exclusão LIMIT 10;conseguiu produzir resultados, o que basicamente eliminou esse problema. (A importância dos logs deve estar ativada!!!)

3. Verifique versões e configurações de dependências

Então suspeitei: há algo errado com a configuração do MyBatisPlus. Depois de verificar as informações da versão e o conteúdo da configuração do MyBatisPlus, sinto que há pouca possibilidade de erro aqui.

4. Encontre informações específicas sobre erros

Eu queria verificar os resultados do erro no Idea e descobri que não havia nenhuma mensagem de erro no Idea.
Portanto, infere-se que esta mensagem de erro vem da classe de tratamento de exceção global escrita por mim. Então entrei no método global de tratamento de exceções e tentei imprimir as informações da exceção:

package com.sky.server.config.exception;

import com.sky.server.pojo.RespBean;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.RestControllerAdvice;

import java.sql.SQLException;
import java.sql.SQLIntegrityConstraintViolationException;

/**
 * 全局异常处理
 */
@RestControllerAdvice
public class GlobalException {
    
    
    @ExceptionHandler(SQLException.class)
    public RespBean mySqlException(SQLException e){
    
    
        if (e instanceof SQLIntegrityConstraintViolationException){
    
    
            return RespBean.error("SQL完整性约束违反异常: 该数据有关联数据,操作失败!");
        }
        /** 添加内容,打印异常信息 **/
        System.out.println("数据库异常具体信息为:");
        System.out.println(e.getMessage());
        /** 添加内容,打印异常信息 **/
        return RespBean.error("数据库异常,操作失败!");
    }
}

Após a execução, o resultado impresso é: 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 37
Análise: Há um problema próximo ao LIMIT 10. Então descobri que havia um ponto e vírgula extra " "
escrito após e.id no final da instrução SQL. Basta excluir o ponto e vírgula.;
Insira a descrição da imagem aqui

5. Resumo

Na verdade, esse erro não é um grande problema, mas ainda existem alguns pontos que precisam de atenção:

  1. Se você não estiver familiarizado com a instrução SQL, poderá localizar o problema com a instrução SQL no início.
  2. Se houver um erro no campo de configuração XML, uma mensagem de erro será informada no console do Idea.
  3. Quando o resultado é um erro, mas não há nenhuma mensagem de erro no console, significa que a exceção foi capturada e processada. Imprimir a mensagem de exceção geralmente é o mais útil.
  4. Eu não escrevi " " ao fazer a paginação antes , então esse problema não ocorreu. Sempre pensei que não havia problema em escrever ou não "" no final da instrução SQL escrita no arquivo XML do MyBatisPlus . Este incidente me lembra de não escrever " " no final da instrução SQL.

Acho que você gosta

Origin blog.csdn.net/qq_38662733/article/details/127074190
Recomendado
Clasificación