MyBatisのorg.apache.ibatis.binding.BindingException:バインドされたステートメントが無効です(見つかりません)

 

一般的なソリューションを次のように要約しました

 

 

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に出力ディレクトリのリソースファイルを更新するよう通知してください。

 

おすすめ

転載: www.cnblogs.com/chy18883701161/p/12695356.html