使用myeclipse来测试mybatis时出现IO异常,意思就是没有找到源文件
错误如下:
java.io.IOException: Could not find resource config/SqlMapConfig.xml
at org.apache.ibatis.io.Resources.getResourceAsStream(Resources.java:110)
at org.apache.ibatis.io.Resources.getResourceAsStream(Resources.java:97)
at cn.mym.mybatis.first.UserMapperTe
我的文件路径放置如下:
我的java测试代码:
@Test
public void findUserById() throws Exception{
String resource ="SqlMapConfig.xml";
//用输入流把核心映射文件引入
InputStream inputStream = Resources.getResourceAsStream(resource);
//创建会话工厂
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
//创建会话:Sqlsession
SqlSession sqlSession = sqlSessionFactory.openSession();
//通过Sqlsession操作数据库
//参数1:映射文件中statement的id 等于:namespace+"."+statement的id
//参数2:指定和映射文件中所匹配的parameterType类型的参数
//selectOne结果是与映射文件中所匹配的resultType类型的对象
User user = sqlSession.selectOne("test.findUserById", 10);
System.out.println(user);
//释放资源
sqlSession.close();
}
使用debug单元测试就报错,源文件找不到。
原因:因为会去src路径下查找这个配置文件,但是不在src中就找不到
解决方法:两种
一、把主要配置文件放到src路径下,其他配置文件引入时注意路径。
二、把如图中的含有配置文件的文件夹设置成 一个源文件 。这样也会像src目录一样变成默认文件路径,所以就可以找到这个配置文件。
方法:有配置文件夹上右键----》Build Path->Use as Source Folder
希望有所帮助