一般的なソリューションを次のように要約しました
1.フルパスの場合、xmlファイルの名前空間がインターフェースに対応しているかどうかを確認します。
xmlファイル名はインターフェース名と同じである必要はなく、名前空間とインターフェースクラス名は同じでもかまいません。
2. xmlの関数IDとインターフェースの関数名が一致するかどうか、およびパラメーターの型と戻り値の型が一致するかどうか
3.出力ディレクトリにxmlマッピングファイルがあるかどうかを確認するために、mavenプロジェクトはデフォルトでリソースファイルをsrc / main / resourcesの下に置き、デフォルトではsrc / main / resourcesの下のリソースファイルのみを認識します。
xmlマッピングファイルなどのリソースファイルをsrc / main / javaのディレクトリに配置して認識できない場合は、pom.xmlで構成する必要があります。
< リソース> < リソース> < ディレクトリ> src / main / java </ ディレクトリ> < インクルード> < インクルード> ** / *。xml </ インクルード> < インクルード> ** / *。properties </ インクルード> </ インクルード> < フィルタリング> true </ フィルタリング> </ リソース> < リソース> <ディレクトリ>SRC /メイン/リソース</ ディレクトリ> < 含まれる> < 含める> ** / *。xmlの</ 含める> < 含める> ** / *。プロパティ</ 含める> </ 含ん> < フィルタリング>真</ フィルタリング> </ リソース> </ リソース>
リソースファイルへのパスを書き込みます。
4. mybatisの構成を見てみましょう。
#エンティティカテゴリ名mybatis.type-aliases-package = com.chy.xm_mall.model#マップ
ファイルの場所
mybatis.mapper-locations = classpath:mapper / *。Xml
5. xmlマッピングファイルにサフィックス.xmlがあるかどうかを確認します。
これは簡単に無視されます。SpringBootでMyBatisを使用したとき、私はそれを長い間調整しました。他の可能性が排除されました。理由を見つけることができませんでした。最後に、マッピングファイルを作成したときに、サフィックス.xmlなしで直接UserDaoMapperを入力したことがわかりました。
サフィックス.xmlを使用しない場合、IDEAはファイルの内容に従ってそれをxmlファイルとして認識でき、表示されるアイコンもxmlファイルですが、.xmlサフィックスがないと、マッピングファイルではないため、実行時に認識できません。
2つ目は正しいです。
いくつかの一般的な方法
- 出力ディレクトリにXMLマッピングファイルがあるかどうかを確認します
- 出力ディレクトリ内のリソースファイルが更新されない可能性があるため、出力ディレクトリを削除し、再コンパイルして実行します。
今後登場するかもしれません
xml dtdステートメントは、使用するmybatisのバージョンと一致している必要があります
<!DOCTYPEマッパー PUBLIC "-// mybatis.org//DTD Mapper 3.0 // EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
これはmybatis3のステートメントです。将来、より高いバージョンのmybatisを使用する場合は、dtdステートメントも対応する必要があることに注意してください。
未確認
- xmlファイルから中国語のコメントを削除する
- xmlファイルにスペースまたは空白行を追加して保存してください。この目的は、出力ディレクトリを削除する目的と同じです。削除したディレクトリのリソースファイル(xmlマッピングファイル)は更新されていないと思います。ファイルを手動で変更して、IDEAに出力ディレクトリのリソースファイルを更新するよう通知してください。