参考:http://blog.csdn.net/u010648555/article/details/70880425
本人用的也是IDEA,maven搭建的项目。
项目目录如下:
import bean.User;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import java.io.IOException;
import java.io.InputStream;
/**
* Created by david on 17-7-9.
*/
public class test {
public static void main(String args[]){
SqlSessionFactory sqlSessionFactory = null;
//NyBatis的配置文件
String resource = "mybatis-conf.xml";
//使用类加载器加载mybatis的配置文件(它也加载关联的映射文件)
try {
InputStream is = Resources.getResourceAsStream(resource);
sqlSessionFactory = new SqlSessionFactoryBuilder().build(is);
//创建能执行映射文件中sql的sqlSession
SqlSession session = sqlSessionFactory.openSession();
User user = session.selectOne("mapping.userMapper.getUser",1);
System.out.println(user);
} catch (IOException e) {
e.printStackTrace();
}
}
}
执行之后报错: java.io.IOException: Could not find resource mybatis-conf.xml
原因:
IDEA是不会编译src的Java目录的xml文件,所以在Mybatis的配置文件中找不到xml文件!(也有可能是Maven构建项目的问题,网上教程很多项目是普通的java web项目,所以可以放到src下面也能读取到)
解决办法:
第一种:
在maven的pom.xml中添加: <build>
<resources>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.xml</include>
</includes>
</resource>
</resources>
</build>
第二种:
将mybatis-conf.xml与userMapper.xml移动到resources文件下。