博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Mybatis在idea中错误:Invalid bound statement (not found)
阅读量:6988 次
发布时间:2019-06-27

本文共 1539 字,大约阅读时间需要 5 分钟。

学习mybatis的过程中,测试mapper自动代理的时候一直出错,在eclipse中可以正常运行,而同样的代码在idea中却无法成功。虽然可以继续调试,但心里总是纠结原因。百度了好久,终于找到一个合适的原因。参考:http://blog.csdn.net/z69183787/article/details/48933481;

原因:(参考:http://www.linuxidc.com/Linux/2015-06/118877.htm)

IDEA的maven项目中,默认源代码目录下的xml等资源文件并不会在编译的时候一块打包进classes文件夹,而是直接舍弃掉。

如果使用的是Eclipse,Eclipse的src目录下的xml等资源文件在编译的时候会自动打包进输出到classes文件夹。Hibernate和Spring有时会将配置文件放置在src目录下,编译后要一块打包进classes文件夹,所以存在着需要将xml等资源文件放置在源代码目录下的需求。

解决:

方法1:将xml或properties等配置文件放到resource下,并修改获取配置文件的代码,比如注册mapper.xml的位置等;

方法2:在maven中添加过滤:

 

1  
2
3
4
src/main/resources
5
6
**/*.properties
7
**/*.xml
8
9
true
10
11
12
src/main/java
13
14
**/*.properties
15
**/*.xml
16
17
true
18
19

 

我采用mybatis的自动代理设置,将mapper文件和xml文件同名同包下,并在sqlMap.xml(mybatis-config.xml)中配置mapper自动注册扫描包:

1 
2
3
4
5 6
10
11 12
17
18 19

测试通过,解决了心头的疙瘩。

 

  

唯有不断学习方能改变! --
Ryan Miao
你可能感兴趣的文章
nginx同一端口监听多个域名和同时监听http,https
查看>>
关于win7系统的设置文件共享与远程连接的步骤整理
查看>>
每天一个linux命令(11):nl命令
查看>>
Apache2.2+tomcat负载均衡session共享配置说明手册1.1版
查看>>
PHP 5.3.0以上推荐使用mysqlnd驱动
查看>>
vue.js中使用d3.js画家谱关系图
查看>>
python实现跨文件全局变量的方法
查看>>
grails的那个编码,老是忘记,记这里。。。。。
查看>>
禁用arcgis security service
查看>>
火狐ssl_error_weak_server_ephemeral_dh_key解决办法
查看>>
Exchange DAG error
查看>>
Windows7安全性的五件应该知道的事
查看>>
ON CONFLICT子句
查看>>
Delphi对保存数据库连接信息的Ini文件的操作类
查看>>
大数相加
查看>>
简单的nginx服务脚本
查看>>
现实社会做点事情真难~难~难~难
查看>>
Docker 完全指南
查看>>
自己建OpenERP群
查看>>
PHP汉字转换拼音http://blog.qita.in
查看>>