今天在写springboot时候基本的查询功能,启动项目之后出现了了这个bug,
翻译一下是无效的绑定语句(未找到),然后去查看是否是配置文件的事情.
检查之后发现没有,然后我尝试了下面的方法,问题解决.
**1.你的mapper写在了java目录里面。例如下图:这样会出现一个问题,即使你在properties里面配置了 mybatis.mapper-locations= classpath:com/lihaoyu/demo/dao/.xml,也没有用,因为编译的时候这个xml文件并没有被自动拉到target里面,毕竟编译的是.java文件而不是xml嘛,所以这时候应该在pom文件里面加上:
‘‘‘
</build>
<resources>
<resource>
<directory>src/main/java</directory><!--所在的目录-->
<includes><!--包括目录下的.properties,.xml文件都会扫描到-->
<include>**/*.properties</include>
<include>**/*.xml</include>
</includes>
<filtering>false</filtering>
</resource>
</resources>
</build>
看了一下我的配置文件,spring官方提供的应该没有问题
如果你把xml放到了resources文件下,那么就只需要配置mybatis.mapper-locations=classpath:/mapper/.xml 就可以了,因为构建的时候会把resources里的东西自动拉到classpath下,注意.classpath意思就是编译后target文件夹下的classes目录.
我的错误是第二种 xml里面的namespace不对 或者id和mapper里面的方法名不一样,或者parameterType对应不上,都会出现这种问题。
‘‘‘
<sql id="table">administrator</sql>
<select id="selectAll" resultType="com.entity.Admin">
select
*
from
<include refid="table"/>
</select>
‘‘‘
sql 后的id配置写错了 导致mybatis 找不到. 配置文件放在了src下面
更改为 resource下的mapper.xml
bug 解决