我是看 https://www.cnblogs.com/xdp-gacl/p/4261895.html 的入门例子照着写的:
先是定义了User类,然后写一个conf.xml的myBatis配置文件,再写一个sql映射文件命名为userMapper.xml,最后再conf.xml中用resource标签引入userMapper.xml。
但博客里是普通的java项目,路径引用我知道怎么写。而我创建的是maven-webapp项目,不知道怎么写路径地址了。
项目结构如下:
在mybatis-config.xml文件里添加了mapper,是这么引用的:
<mapper resource="userMapper.xml"/>
能正常运行,但是有几个问题:
-
1. 我看到网上说在src/main/resources下的xml文件,在配置文件里引用时,好面可以写上classpath,如:
<mapper resource="classpath:userMapper.xml"/>
但我试了,却找不到userMapper.xml。想请问下,classpath代表什么,是怎么用的呢?
2. 同样写这句:
<mapper resource="userMapper.xml"/>
由于src/main/java 和 src/main/resources的output folder都是mybatis/target/classes,但我把userMapper.xml移到src/main/java下,运行却提示找不到userMapper.xml呢?
3. 我现在是把mybatis-config.xml文件放在src/main/resources下,Test类中是这么写的资源地址:
String resource = “mybatis-config.xml”;
但如果我要把xml放到src/main/java下,要怎么写呢?
补充:
求助各位,谢谢啦。
你莫不是看岔了? xml里resourc=xxx.xml? 什么意思
xml里可以指定相对应的dao接口 如 :<mapper namespace="com.xxx.xx.xxxDao">
提示找不到xml,你配置的xml路径是什么呢.把 配置内容 代码 放出来.
classpath是指 WEB-INF文件夹下的classes目录
classpath路径指什么:https://www.cnblogs.com/lwx521/p/7954563.html
首先,现在很少人用xml作为配置文件的了,因为现在主流的项目都是用spring boot,都是配置文件配置的,很少用xml作为配置mybatis配置文件了,SQL可以用xml,放在独立文件夹下,方便区分
为什么要放到resource下?因为src上主要是代码区,是要进行编译的,而resource主要存放的是静态资源或者配置文件,不需要编译,直接打包
classpath就相当于你项目运行的路径目录下,resource打包后和src编译后的目录是同级,因此,你在使用classpath:UserMapper.xml时可以引用得到,当然,这要是UserMapper.xml 直接在resource目录下的情况,如果是在某文件夹下的话,还得需要加文件夹的路径,如:classpath:mapper/UserMapper.xml