ssm固定报错org.apache.ibatis.binding.BindingException:無効なバインドされたステートメント(見つかりません):xxx

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が戻り値タイプと一貫しているかどうか!

おすすめ

転載: blog.csdn.net/qq_44783283/article/details/108617395