MybatisPlus ページング操作で発生した問題

1. 問題の顕在化

従業員ページング クエリが作成された後、テストが実行され、エラーが報告されます。数据库异常,操作失败!
ここに画像の説明を挿入します

2. プロンプトに従って SQL ステートメントを確認します。

まず第一に、MySQL サービスが開始されていないか、サーバーがダウンしているか、SQL ステートメントのスペルに問題があるかを疑ってください。
コンソールの SQL ログを Navicat にコピーしたところ、削除によってLIMIT 10;結果が得られ、基本的にこの問題は解消されました。(ログの重要性をオンにする必要があります!!!)

3. 依存関係のバージョンと構成を確認する

そこで私は、MyBatisPlus の設定に何か問題があるのではないかと考えました。MyBatisPlusのバージョン情報や設定内容を確認したところ、こちらはエラーの可能性は低いような気がします。

4. 特定のエラー情報を見つける

Idea でエラー結果を確認したかったのですが、Idea にはエラー メッセージが表示されていませんでした。
したがって、このエラー メッセージは私が作成したグローバル例外処理クラスからのものであると推測されます。そこで、グローバル例外処理メソッドを入力し、例外情報を出力しようとしました。

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

実行後、出力される結果は次のとおりです。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
分析: LIMIT 10 付近に問題があります。
すると、 SQL文の最後にe.idの後に余分なセミコロン「 ;」が書かれていることが分かりましたので、
ここに画像の説明を挿入します
セミコロンを削除してください。

5. まとめ

このエラーは実際には大きな問題ではありませんが、注意が必要な点がいくつかあります。

  1. SQL ステートメントに慣れていない場合でも、SQL ステートメントの問題を最初から見つけることができます。
  2. XML 構成フィールドにエラーがある場合、アイデア コンソールにエラー メッセージが報告されます。
  3. 結果がエラーであっても、コンソールにエラー メッセージが表示されない場合は、例外が捕捉されて処理されたことを意味します。多くの場合、例外メッセージを出力するのが最も便利です。
  4. 以前にページングを行うときに「」を書かなかったので、この問題は発生しませんでした。MyBatisPlus の XML ファイルに書かれている SQL 文の最後は「 」を書いても書かなくても良いとずっと思っていましたが、この出来事をきっかけに SQL 文の最後に「 」を書いてはいけないと思い直しました。

おすすめ

転載: blog.csdn.net/qq_38662733/article/details/127074190