MyBatisをSpringBootに統合すると、Mapper.xmlファイルをスキャンできないという問題が発生する可能性があります
一般的なエラーは次のとおりです。
org.apache.ibatis.binding.BindingException:無効なバウンドステートメント(見つかりません):インターフェースメソッドの完全修飾名
通常、この種のエラーは、mapper.xmlファイルにマップされていないために発生します。
トラブルシューティングの方向:
1.マッパーインターフェイスと対応するxmlファイルパスは同じディレクトリにありますか?
例:マッパーインターフェースの完全修飾名:com.xxx.mybatis.mapper.xxxMapper
図に示すように、対応するxxxMapper.xmlは、javaディレクトリのcom.xxx.mybatis.mapperパッケージの下と同じです。
現時点では:
隠れた問題があります 。Mavenプロジェクトは実行時にパッケージ化され、Javaディレクトリ内のxmlリソースはパッケージ化されるときに無視されます。
解決策:
pom.xmlの構成は次のとおりです。
1 < ビルド> 2 < リソース> 3 < リソース> 4 < ディレクトリ> src / main / java </ ディレクトリ> 5 < インクルード> 6 < インクルード> ** / *。xml </ インクルード> 7 </ インクルード> 8 < / リソース> 9 < リソース> 10 < ディレクトリ> src / main / resources </ ディレクトリ> 11 </ リソース> 12 </ リソース> 13 </ ビルド>
2.同じディレクトリにないが、xmlファイルがresourcesディレクトリにある場合、マッパーインターフェイスがxmlファイルに対応しているかどうかを確認しますか?
上の画像は対応するもので、現時点でスキャンできます
対応していない場合は、スキャンパスをカスタマイズすることもできます。
application.propertiesの構成は次のとおりです。
mybatis.mapper-locations = classpath:スキャンするパス(例:com / xxx / mybatis / *。xml)
これまでのところ、問題を解決する必要があります
一部の小規模なパートナーがssmから転送された可能性があります。以前に構成されたSqlSessionFactorとMapperScanがなくなっていることを知りたいのですが、不要ですか?
SpringBootの自動アセンブリの原則について説明します。ここでは詳しく説明しません。
mybatis-spring-boot-starterは、対応する自動アセンブリクラスも提供します