Problèmes rencontrés lors du fonctionnement de la pagination MybatisPlus

1. L'émergence de problèmes

Une fois la requête de pagination de l'employé écrite, le test est exécuté et une erreur est signalée :数据库异常,操作失败!
Insérer la description de l'image ici

2. Vérifiez l'instruction SQL selon les invites

Tout d'abord, suspect : le service MySQL n'est pas démarré, ou le serveur est en panne, ou il y a un problème avec l'orthographe de l'instruction SQL.
J'ai copié le journal SQL de la console sur Navicat et la suppression LIMIT 10;a pu produire des résultats, ce qui a essentiellement éliminé ce problème. (L'importance des logs doit être activée !!!)

3. Vérifiez les versions et les configurations des dépendances

Puis j'ai soupçonné : il y a quelque chose qui ne va pas avec la configuration de MyBatisPlus. Après avoir vérifié les informations sur la version de MyBatisPlus et le contenu de la configuration, j'estime qu'il y a peu de possibilité d'erreur ici.

4. Rechercher des informations d'erreur spécifiques

Je voulais vérifier les résultats d'erreur dans Idea et j'ai constaté qu'il n'y avait aucun message d'erreur dans Idea.
Par conséquent, on en déduit que ce message d’erreur provient de la classe globale de gestion des exceptions écrite par moi-même. J'ai donc entré la méthode globale de gestion des exceptions et j'ai essayé d'imprimer les informations sur l'exception :

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("数据库异常,操作失败!");
    }
}

Après l'exécution, le résultat imprimé est : 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
Analyse : Il y a un problème proche de la LIMITE 10. Ensuite, j'ai découvert qu'il y avait un point-virgule supplémentaire " "
écrit après e.id à la fin de l'instruction SQL. Supprimez simplement le point-virgule.;
Insérer la description de l'image ici

5. Résumé

Cette erreur n'est en fait pas un gros problème, mais il y a quand même quelques points qui nécessitent une attention particulière :

  1. Si vous n'êtes pas familier avec l'instruction SQL, vous pouvez localiser le problème avec l'instruction SQL depuis le début.
  2. S'il y a une erreur dans le champ de configuration XML, un message d'erreur sera signalé sur la console Idea.
  3. Lorsque le résultat est une erreur mais qu'il n'y a pas de message d'erreur sur la console, cela signifie que l'exception a été interceptée et traitée. L'impression du message d'exception est souvent la plus utile.
  4. Je n'avais pas écrit " " lors de la pagination auparavant , donc ce problème ne s'est pas produit. J'ai toujours pensé qu'il était normal d'écrire ou de ne pas écrire " " à la fin de l'instruction SQL écrite dans le fichier XML de MyBatisPlus . Cet incident me rappelle de ne pas écrire " " à la fin de l'instruction SQL.

Je suppose que tu aimes

Origine blog.csdn.net/qq_38662733/article/details/127074190
conseillé
Classement