1.前言
使用的IDE:IDEA2020.1
使用maven创建Java工程
使用junit测试
自己在学习MyBatis的时候运行程序总出错,网上查阅资料也没有完全解决问题。在多次尝试后终于解决,因此记录下来。
2.出错时的环境
可以看到,UserDao.xml是在src的resources路径下面,虽然其父路径在idea中显示为com.xxx.dao,但是在创建文件夹的时候是一级一级创建的,并且从文件夹可以看到的确是多级目录。
配置信息:
<mappers>
<mapper resource="com/xxx/UserDao.xml"/>
</mappers>
测试中仍然报错:
Could not find resource com/xxx/UserDao.xml
均不符合博客中的前两种情况。使用该博客中的第三种解决方案中的使用class加载和注解的形式可以运行。那如何让我的xml配置形式的程序跑起来?
3.解决方案
把UserDao.xml直接放到src下的resources目录下
配置信息
<mappers>
<mapper resource="UserDao.xml"/>
</mappers>
运行成功
User{id=41, username='老王', birthday=Tue Feb 27 17:47:08 CST 2018, sex='男', address='北京'}
User{id=42, username='小二王', birthday=Fri Mar 02 15:09:37 CST 2018, sex='女', address='北京金燕龙'}
User{id=43, username='小二王', birthday=Sun Mar 04 11:34:34 CST 2018, sex='女', address='北京金燕龙'}
User{id=45, username='传智播客', birthday=Sun Mar 04 12:04:06 CST 2018, sex='男', address='北京金燕龙'}
User{id=46, username='老王', birthday=Wed Mar 07 17:37:26 CST 2018, sex='男', address='北京'}
User{id=48, username='小马宝莉', birthday=Thu Mar 08 11:44:00 CST 2018, sex='女', address='北京修正'}
4.思考
为什么之前的配置中会出现错误?是因为使用junit测试,路径不对吗?还是其他原因呢?
请各位大佬多多指教!
5.后记
之前学习的时候以为以下配置只能用于使用注解,后面发现注解和xml配置都可使用
<mappers>
<package name="com.xxx.dao"/>
</mappers>
此时的UserDao位置