17.将dao接口和mapper.xml文件分开
17.1 Resources 标签
在上一篇文章中,将dao接口和mapper.xml文件放在同一个dao目录下,如图:
现在我在pom.xml里将resources标签注释掉,看看没有他能不能识别xml文件:
打开右边的maven栏,点击lifecycle,再先后点击clean和compile:
这时看左边target目录下的classes文件夹:
发现dao目录下只有接口StudentDao,没有对应的Student.xml文件!说明不能自动识别 src/main/java目录下的配置类文件,如果非要将配置类文件放到 src/main/java 目录下,就要在pom.xml文件中build中加入resources标签(改完pom文件后要reload一下):
这时打开右边的maven栏,点击lifecycle,再先后点击clean和compile,查看target文件夹中的dao目录:
可见在pom.xml文件中加入resources标签声明后,StudentDao.xml文件出现在了target目录下,识别了StudentDao.xml配置文件!
17.2 将xml文件放到 resources目录下实现与dao接口分离
既然框架不会识别 src/main/java 目录下的xml配置文件,那么将xml配置文件放到 resources 目录下那肯定就没问题了,因为resource类路径目录本来就是存放.propertie和.xml文件的。现在我将 StudentDao.xml文件放到 resources 目录下的子目录mapper目录下,启动应用,打开浏览器访问:
localhost:8080/1 查看id 为 1 的学生信息,控制台出现如下错误:
出现无效绑定的错误信息,原因是没有找到StudentDao.xml文件,当时很好奇,既然将配置文件都放到 resources 目录下了,怎么还是不能识别呢,原因是,放到这个目录时,要在properties 文件中申明 mapper配置文件的位置:
这样就可以识别xml文件了,重启应用,访问localhost:8080/1 查看id 为 1 的学生信息:
查询成功!