发表于: 2018-03-13 19:25:12

1 450


今天 完成得事:

mybatis连接数据库插入数据


明天完成的事:

学习Spring,配置Spring和Junit


遇到得问题:

用maven导入得包,在build得过程出现非常多问题

1.mybatis-config.xml找不到

2.配置打错单词,driver打错成diriver,找了很久。

3. Invalid bound statement (not found)

我查了好久得配置,确定没错,但是还是build出错,百度得到解决办法,在下面贴一下


Maven项目mybatis Invalid bound statement (not found)解决方法
原创 2016年10月12日 13:32:42
最近因为工作需要,要学习mybatis框架。在添加好一些依赖之后,通过mybatis进行数据库的crud操作。但是在测试的时候总是报mybatis:Invalid bound statement (not found)。在网上搜索了好久,最后终于发现了问题的所在,现在把它记录下来,供大家参考:
在mapper代理的开发中,程序员需要遵守一些规范,mybatis才能实现mapper接口的代理对象。 
它的规范如下:
  • mapper.xml的namespace要写所映射接口的全称类名。
  • mapper.xml中的每个statement的id要和接口方法的方法名相同
  • mapper.xml中定义的每个sql的parameterType要和接口方法的形参类型相同
  • mapper.xml中定义的每个sql的resultType要和接口方法的返回值的类型相同
  • mapper.xml要和对应的mapper接口在同一个包下
  • mapper.xml的命名规范遵守: 接口名+Mapper.xml

如果以上检查完毕,项目都遵守了上述的规范,而且你的项目是Maven项目。但是运行程序还是会出现Mybatis invalid bound statement(not found)的问题,这个时候就需要修改pom.xml文件了。在pom.xml中添加如下的代码:

将以上代码添加到pom.xml中,运行项目,问题解决。

原因是:maven默认会把src/main/resources下的所有配置文件以及src/main/java下的所有java文件打包或发布到target\classes下面,但是现实我们可能会在src/main/java下面也放置一些配置文件如hibernate配置文件或mybatis mapper配置文件等,如果不做一些额外配置,那我们打包后的项目可能找不到这些必须的资源文件。

下图是没配置得

有配置得

maven是运行target编译后的类文件,很明显看到,我辛辛苦苦配置得mapper.xml没有在指定目录,所以报错。

为什么我用maven配置,maven真得是个好东西!坚持下来我相信有好处





返回列表 返回列表
评论

    分享到