使用IDAE创建一个Maven风格的普通项目学习Mybatis的用法时出现 java.io.IOException: Could not find resource 错误
错误:
Category类:
package com.myself.pojo;
public class Category {
private int id;
private String name;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
Category的Mapper文件:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.myself.pojo">
<select id="listCategory" resultType="Category">
select * from category_
</select>
</mapper>
Mybatis配置文件:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<!--包的别名,自动扫描com.myself.pojo下的类型,后续再使用xml文件的resultType时,可以直接使用类名,而不必要写全。也可以不设置-->
<typeAliases>
<package name="com.myself.pojo"/>
</typeAliases>
<environments default="development">
<environment id="development">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<!--主要提供链接数据库用的驱动,数据库名称,编码方式,账号密码-->
<property name="driver" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/aaabbb?characterEncoding=UTF-8"/>
<property name="username" value="root"/>
<property name="password" value="123456"/>
</dataSource>
</environment>
</environments>
<!--指明映射类的文件的位置-->
<mappers>
<mapper resource="com/myself/pojo/Category.xml"/>
</mappers>
</configuration>
原因:
IDEA的Maven是不会编译src的java目录的xml文件,所以在Mybatis的配置文件中找不到xml文件!
而建立的是普通的java项目src下的xml文件也是可以读到的
解决办法1:
在Maven的pom文件中,添加下面代码:
<build>
<resources>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.xml</include>
</includes>
</resource>
</resources>
</build>