如何解决Invalid bound statement (not found):问题

错误信息
org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.zking.ssm.mapper.LogininfoMapper.getUserByNameAndPwd

	at org.apache.ibatis.binding.MapperMethod$SqlCommand.<init>(MapperMethod.java:225)
	at org.apache.ibatis.binding.MapperMethod.<init>(MapperMethod.java:48)
	at org.apache.ibatis.binding.MapperProxy.cachedMapperMethod(MapperProxy.java:65)
	at org.apache.ibatis.binding.MapperProxy.invoke(MapperProxy.java:58)
	at com.sun.proxy.$Proxy37.getUserByNameAndPwd(Unknown Source)
	at com.zking.ssm.service.LogininfoServiceImpl.getUserByNameAndPwd(LogininfoServiceImpl.java:18)
	at com.zking.ssm.service.LogininfoServiceImplTest.getUserByNameAndPwd(LogininfoServiceImplTest.java:21)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
	at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
	at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
	at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
	at org.springframework.test.context.junit4.statements.RunBeforeTestExecutionCallbacks.evaluate(RunBeforeTestExecutionCallbacks.java:73)
	at org.springframework.test.context.junit4.statements.RunAfterTestExecutionCallbacks.evaluate(RunAfterTestExecutionCallbacks.java:83)
	at org.springframework.test.context.junit4.statements.RunBeforeTestMethodCallbacks.evaluate(RunBeforeTestMethodCallbacks.java:75)
	at org.springframework.test.context.junit4.statements.RunAfterTestMethodCallbacks.evaluate(RunAfterTestMethodCallbacks.java:86)
	at org.springframework.test.context.junit4.statements.SpringRepeat.evaluate(SpringRepeat.java:84)
	at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
	at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:251)
	at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:97)
	at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
	at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
	at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
	at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
	at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
	at org.springframework.test.context.junit4.statements.RunBeforeTestClassCallbacks.evaluate(RunBeforeTestClassCallbacks.java:61)
	at org.springframework.test.context.junit4.statements.RunAfterTestClassCallbacks.evaluate(RunAfterTestClassCallbacks.java:70)
	at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
	at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.run(SpringJUnit4ClassRunner.java:190)
	at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
	at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:68)
	at com.intellij.rt.execution.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:47)
	at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:242)
	at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:70)

解决方案
  1. 检查xml的namespace是否与mapper里面的接口名一致
 <mapper namespace="com.zking.ssm.mapper.LogininfoMapper">
  1. 检查mapper中xml的配置是否正确
 <property name="mapperLocations" value="classpath*:/mapper/*.xml"/>

3.我报错是因为在prom.xml中多写了逆向生成的代码

<!--<resources>-->
      <!--&lt;!&ndash;解决mybatis-generator-maven-plugin运行时没有将XxxMapper.xml文件放入target文件夹的问题&ndash;&gt;-->
      <!--<resource>-->
        <!--<directory>src/main/java</directory>-->
        <!--<includes>-->
          <!--<include>**/*.xml</include>-->
        <!--</includes>-->
      <!--</resource>-->
      <!--&lt;!&ndash;解决mybatis-generator-maven-plugin运行时没有将jdbc.properites文件放入target文件夹的问题&ndash;&gt;-->
      <!--<resource>-->
        <!--<directory>src/main/resources</directory>-->
        <!--<includes>-->
          <!--<include>jdbc.properties</include>-->
          <!--<include>*.xml</include>-->
        <!--</includes>-->
      <!--</resource>-->
    <!--</resources>-->

因为我在spring的配置文件中以及配置过了,然后删掉逆向生成的代码就好了

<!--4. spring和MyBatis整合 -->
    <!--1) 创建sqlSessionFactory-->
    <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
        <!-- 指定数据源 -->
        <property name="dataSource" ref="dataSource"/>
        <!-- 指定mybatis核心配置文件 -->
        <property name="configLocation" value="classpath:mybatis.cfg.xml"/>
        <!-- 自动扫描XxxMapping.xml文件,**表示迭代查找 -->
        <property name="mapperLocations" value="classpath*:/mapper/*.xml"/>
    </bean>

    <!--2) 自动扫描com/zking/oa/**/mapper下的所有XxxMapper接口(其实就是DAO接口),并实现这些接口-->
    <!--   即可直接在程序中使用dao接口,不用再获取sqlsession对象-->
    <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
        <!--basePackage 属性是映射器接口文件的包路径。-->
        <!--你可以使用分号或逗号 作为分隔符设置多于一个的包路径-->
        <property name="basePackage" value="com/zking/**/mapper"/>
        <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"/>
    </bean>
发布了5 篇原创文章 · 获赞 0 · 访问量 324

猜你喜欢

转载自blog.csdn.net/weixin_44212808/article/details/103540386