MyBatis绑定异常
抛出的异常:
2020-09-07 16:41:21.566 ERROR 9664 --- [nio-8080-exec-3] o.a.c.c.C.[.[.[/].[dispatcherServlet] : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.example.activity.dao.ActivityDao.insertObject] with root cause
org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.example.activity.dao.ActivityDao.insertObject
at org.apache.ibatis.binding.MapperMethod$SqlCommand.<init>(MapperMethod.java:235) ~[mybatis-3.5.5.jar:3.5.5]
at org.apache.ibatis.binding.MapperMethod.<init>(MapperMethod.java:53) ~[mybatis-3.5.5.jar:3.5.5]
application.yml配置文件:
#spring mybatis
mybatis:
#修改后的配置
mapper-locations: /mapper/*.xml
# 错误配置xml路径配置错误
# mapper-locations: /mapper/*/*.xml
目录结构:
mapper.xml:
<mapper namespace="com.example.activity.dao.ActivityDao">
<insert id="insertObject">
insert into tb_activity
(title, category, startTime, endTime, remark, state, createdTime, createdUser)
VALUES
(#{title},#{category},#{startTime},#{endTime},#{remark},1,now(),#{createdUser})
</insert>
</mapper>
mapper:
int insertObject(Activity activity);
产生绑定异常的原因:
· 绑定异常跟数据层有关系,通常是mybatis的映射文件配置出问题
· 仔细检查 mapper.java,application.yml中mybatis的mapper-locations路径配置,mapper.xml文件中的id与mapper.java中的方法匹配
· 注意工程目录结构默认从/resources/文件开始