記事の最後に個人の公開アカウントがあります:テクノロジーを愛する Xiao Zheng。主に開発知識や教材、卒業設計指導などの共有を行っています。興味のある人は注目してみてはいかがだろうか。なぜ共有するのでしょうか? 自分が踏んだ落とし穴を再び他人に踏ませる必要はなく、自分で見直すことで記憶も深まるでしょう。自分の利益と他人の利益は、いわゆるwin-winの状況です。
テクノロジーを愛するシャオ・ジェンさん
問題の説明
元のプロジェクトでは springboot+mybatis フレームワークを使用しており、すべてのインターフェイス サービスに問題はありませんでした。コードの最適化を考えていたのですが、mybatis-plusの利用も検討していたので、コードの検証コード部分はmybatis-plusを利用していましたが、利用の過程で新しいDaoレイヤー、つまりMapperを利用しました。正常に動作し問題はありませんでしたが、アクセスする前にインターフェイスの使用中に問題が発生し、エラーが報告されました。
2023-09-13 20:04:34 |ERROR |http-nio-8282-exec-3 |GlobalExceptionHandler.java:24 |com.zheng.yu.config.handler.GlobalExceptionHandler |Invalid bound statement (not found): com.zheng.yu.mapper.UserMapper.getUserByUsername
ネットでいろいろ調べてみたところ、以下のような意見が多かったです。
- 1. マッピングが成功しませんでした。
- 2. パッケージの構造が間違っています
- 3. mybatis と mybatis-plus の jar パッケージが競合します。
- 4. mybatis と mybatis-plus の設定ファイルは共存可能です [mybatis の該当設定を mybatis-plus の該当設定に変更すると問題ありません。しかし、私の他のプロジェクトには、問題なく共存する mybatis 構成と mybatis-plus 構成もあります。プログラムと人間の両方が実行できる限り]
解決
変更する必要がある場所は yml 設定ファイル内です。