mybatis錯誤:Invalid bound statement (not found): com.prcsteel.peanut.dao.UserDao.selectById

spring + mybatis 配置 SqlSessionFactoryBean

<bean id="sqlSessionFactory" name="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
        <!--數據源-->
        <property name="dataSource" ref="dataSource" />
        <!--基礎實體類包路徑-->
        <property name="typeAliasesPackage" value="${mybatis.model}" />
        <!--mybatis 動態sql編寫mapper文件路徑-->
        <property name="mapperLocations" value="${mybatis.mapperLocations}" />
        <property name="plugins">
            <array>
                <bean class="com.github.pagehelper.PageHelper">
                    <property name="properties" value="dialect=mysql"/>
                </bean>
            </array>
        </property>
    </bean>

代理接口dao通過MapperScanConfigurer掃描注入

<!--mapper 代理接口(dao)掃描-->
    <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
        <!--這裏value 用properties文件引入死活不成功!-->
        <property name="basePackage" value="com.prcsteel.peanut.dao" />
        <!--單一數據源時可以不配製此項-->
      <!--  <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory" />-->
    </bean>

參照網上的幾點建議:
1、<mapper namespace="com.prcsteel.peanut.dao.UserDao">
mapper文件namespace和dao路徑對應

2.UserDao的方法在UserMapper.xml中沒有,然後執行UserDao的方法會報此

3、UserDao的方法返回值是List,而select元素沒有正確配置ResultMap,或者只配置ResultType!

4、如果你確認沒有以上問題,請任意修改下對應的xml文件,比如刪除一個空行,保存.問題解決…

發現並無上述問題。仔細查看log,發現有這一段輸出:

[DEBUG] org.mybatis.spring.SqlSessionFactoryBean.buildSqlSessionFactory - Property 'mapperLocations' was not specified or no matching resources found

SqlSessionFactoryBean 並沒有加載到對應的mapper xml文件,當然執行方法的時候也就找不到dao所對應的mapper,而無法執行對應的sql,查看maven target 的classes目錄下也並沒有mapper的xml文件出現。

原因:mapper文件並不是放在resource中,而是在java目錄,maven編譯的時候並沒有把xml文件編譯進來。
解決:在pom文件中添加resource編譯

<resources>
    <resource>
        <!--此處配置到java是因爲mapper.xml文件在java目錄-->
        <directory>src/main/java</directory>
        <includes>
            <include>**/*</include>
        </includes>
        <filtering>false</filtering>
    </resource>
</resources>
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章