1.エラーの理由
MapperScannerConfigurerを使用して、対応するマッパーインターフェイスをスキャンし、マッパーをSpringコンテナーに配置するのに役立ちますが、マッパーマッピングファイルがsessionFactoryに関連付けられていません。
mybatisコア構成ファイルをロードすると、
その中の環境、データソース、およびマッパータグが無効になり、マッパーマッピングファイルをロードできなくなります。
<!-- 配置sessionFactory -->
<bean id="sqlSessionFactoryBean" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource"/>
<!-- 加载 mybatis核心配置文件-->
<property name="configLocation" value="classpath:mybatis-config.xml"/>
</bean>
<!-- 将mapper接口给spring容器管理 -->
<bean id="mapperScannerConfigurer" class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<property name="basePackage" value="cn.bitqian.dao"/>
</bean>
2.解決する
SqlSessionFactoryBeanにマッパーファイルをロードする必要があります
<bean id="sqlSessionFactoryBean" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource"/>
<!-- 加载 mybatis核心配置文件-->
<property name="configLocation" value="classpath:mybatis-config.xml"/>
<!-- 加载mapper 映射文件-->
<property name="mapperLocations" value="classpath:cn/bitqian/mapper/*"/>
</bean>
3.説明
- これは私の問題です。マッパーマッピングファイルがロードされていません
- 私はこのファイルに長い間取り組んできました
- この問題の本質は、マッパーインターフェイスに対応するメソッドが見つからないことです。マッパーインターフェイスのメソッドは、マッパー構成ファイルのステートメントタグとのマッピングに失敗します。マッパーマッピングファイルの名前がマッパーインターフェイスの完全なクラス名と一致しているかどうか、およびステートメントのIDがインターフェイスであるかどうかに注意してください。メソッド名が一貫しているかどうか、およびparameterTypeとメソッドパラメーター、resultType / resultMapが戻り値タイプと一貫しているかどうか!