mysql自动实现dao类, 报错Exception in thread "main" org.apache.ibatis.binding.BindingException: Invalid bound statement (not found):

发布于 2021-11-29 20:51:18 字数 4539 浏览 749 评论 11

Exception in thread "main" org.apache.ibatis.binding.BindingException: Invalid bound statement (not found):

先贴配置:


<!-- myBatis 配置 -->
    <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
        <property name="configLocation" value="classpath:mybatis-config.xml"/>
        <property name="dataSource" ref="dataSource"/>
        <property name="mapperLocations" value="classpath*:com/haoyin/logic/dao/*.xml"/>
    </bean>

    <!-- 配置sqlSessionTemplate -->
    <bean id="sqlSessionTemplate" class="org.mybatis.spring.SqlSessionTemplate">
        <constructor-arg index="0" ref="sqlSessionFactory" />
    </bean>

    <!-- mybatis自动实现dao-->
    <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
        <property name="basePackage" value="com.haoyin.logic.dao"/>
    </bean>


网上说上面最后错误,我这里是指定对的, sqlSessionFactory里的mapperLocations也是对的.

Exception in thread "main" org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.haoyin.logic.dao.UserLoginDao.getTokenByUid
	at org.apache.ibatis.binding.MapperMethod$SqlCommand.<init>(MapperMethod.java:196)
	at org.apache.ibatis.binding.MapperMethod.<init>(MapperMethod.java:44)
	at org.apache.ibatis.binding.MapperProxy.cachedMapperMethod(MapperProxy.java:59)
	at org.apache.ibatis.binding.MapperProxy.invoke(MapperProxy.java:52)
	at com.sun.proxy.$Proxy11.getTokenByUid(Unknown Source)
	at com.haoyin.logic.service.UserLoginServiceImpl.authenticate(UserLoginServiceImpl.java:20)
	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:497)
	at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:317)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:183)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150)
	at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:96)
	at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:260)
	at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:94)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
	at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
	at com.sun.proxy.$Proxy15.authenticate(Unknown Source)
	at com.haoyin.logic.service.UserLoginServiceTest.main(UserLoginServiceTest.java:19)



从报错信息看, 我的mapper文件的namespace也是对的, 接口里的方法也是有的. 下面贴我接口的代码

import com.haoyin.logic.bean.UserLogin;
import org.apache.ibatis.annotations.Param;


/**
 * Created by dong on 2016/1/23.
 */
public interface UserLoginDao {

    String getTokenByUid(@Param("uid")String uid);

    String update(@Param("userLogin")UserLogin userLogin);

}



mapper文件:

<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">

<mapper namespace="com.haoyin.logic.dao.UserLoginDao">

    <select id="getTokenByUid"  resultType="string">
        SELECT token FROM v1_userLogin WHERE uid = (#{uid})
    </select>

    
    <update id="update">
        UPDATE v1_userLogin
        <set>
            <if test="token != null">token = (#{token}),</if>
            <if test="expire != null">expire = (#(expire)),</if>
            <if test="lastAccessTimestamp != null">lastAccessTimestamp = (#(lastAccessTimestamp)) </if>
        </set>
        WHERE uid = (#{uid})
    </update>

</mapper>



找了俩小时了,搜了很多, 但是仍然没解决. 请大家帮忙看看


如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(11

狼亦尘 2021-12-02 08:54:42

引用来自“JuSole”的评论

没找到xml 文件,看看路径对不?

柳若烟 2021-12-02 08:54:32

路径肯定是对的。我在想会不会是我分了模块的原因呢

本宫微胖 2021-12-02 08:54:30

回复
1、如果用的mvn,那就检查xml复制过去了没。2、这么配置: <property name="mapperLocations" value="classpath*:com/huaxin/**/*Mapper.xml"></property>

草莓味的萝莉 2021-12-02 08:54:08

回复
还是一样.似乎没有找到mapper文件

永不分离 2021-12-02 08:52:59

回复
你确定这两个没问题呢,找不到mapper文件都是这两个造成的。

因为看清所以看轻 2021-12-02 08:52:08

没找到xml 文件,看看路径对不?

如此安好 2021-12-02 08:50:46

<property
name="mapperLocations"
value="classpath*:com/haoyin/logic/dao/*.xml"/> 改为在
mybatis-config.xml 中清华手动的试试。

柠檬 2021-12-02 08:42:25

我流下来感动的泪水. 太感谢了. 真是这个原因. 定位问题和搜索的能力仍需加强, 感谢

风苍溪 2021-12-01 21:04:28

你遇到的问题都是我走过的路。呵呵,慢慢来就行了。

夜司空 2021-12-01 12:57:14

回复
按照你的方法,我的问题也解决了,太感谢

回忆凄美了谁 2021-11-30 14:26:31

引用来自“JuSole”的评论

没找到xml 文件,看看路径对不?

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文