作者:手机用户2502873151 | 来源:互联网 | 2024-11-01 11:37
在将Spring与MyBatis进行整合时,作者遇到了“无效绑定语句(未找到):com.music.dao.MusicDao.findAll”的问题。该问题主要出现在使用XML文件配置DAO层的情况下,而注解方式配置则未出现类似问题。作者详细分析了两个配置文件之间的差异,并最终找到了解决方案。本文将详细介绍问题的原因及解决方法,帮助读者避免类似问题的发生。
一、
题主当时就是自己尝试整合spring和mybatis的时候遇到了这个问题,当时题主只看到了用注解的方式配置的dao层,题主用的是xml文件配置的形式,
而且坑爹的是题主的两个文件的路径写的也不一致,就导致直接用"basePackage" value="com.music.dao"> 导致绑定异常
后来在网上查到了解决的办法 ,就是如果路径一致,(如果一致你也就不会来看到本文了),
两个目录路径不一致的话,就代码??
applicationContext.xml
"1.0" encoding="UTF-8"?>
"http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx.xsd">
base-package="com.music">
"annotation" expression="org.springframework.stereotype.Controller"/>
"dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
"driverClassName" value="com.mysql.jdbc.Driver">
"url" value="jdbc:mysql:///song?serverTimezOne=GMT%2B8">
"username" value="root">
"password" value="root">
class="org.mybatis.spring.SqlSessionFactoryBean" id="factoryBean">
"dataSource" ref="dataSource">
name="mapperLocations" value="classpath:com/music/**/*.xml">
class="org.mybatis.spring.mapper.MapperScannerConfigurer" id="MapperScannerConfig"> "basePackage" value="com.music.dao">
网上的官方解释文档:http://mybatis.github.io/spring/factorybean.html
idea的spring整合基于xml文件配置的mybatis报Invalid bound statement (not found): com.music.dao.MusicDao.findAll的问题