java.lang.ClassNotFoundException: org.apache.ibatis.io.Resources

java.lang.ClassNotFoundException: org.apache.ibatis.io.Resources的解决办法

java.lang.ClassNotFoundException: org.apache.ibatis.io.Resources的解决办法

新建了一个整合mybatis的maven项目,算不上mvc,过于简陋,整体框架结构也不明显,出现一个奇怪的问题。在test测试类中,可以成功将内容写进如数据库中。代码如下:

package com.entity;

import com.mapper.UserMapper;

import com.service.UserService;

import com.utils.SessionUtils;

import junit.framework.TestCase;

import org.apache.ibatis.session.SqlSession;

import org.junit.Test;

import org.springframework.beans.factory.annotation.Autowired;

import java.io.IOException;

public class UserTest extends TestCase {

public void testMapper() throws IOException {

SqlSession sqlSession=SessionUtils.getSqlSession();

UserMapper userMapper=sqlSession.getMapper(UserMapper.class);

User user =new User("emily","女",23,"828282");

userMapper.insertUser(user);

System.out.println("success");

sqlSession.commit();

}

}

package com.utils;

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;

public class SessionUtils {

public static SqlSession getSqlSession() throws IOException {

//1.读取配置核心文件mybatis-config.xml

InputStream in = Resources.getResourceAsStream("mybatis-config.xml");

//2.创建SqlSessionFactory工厂

SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();

SqlSessionFactory factory = builder.build(in);

//3.使用工厂生产SqlSession对象

SqlSession session = factory.openSession();

in.close();

return session;

}

}

奇怪的是在运行test类,可以成功将内容写进数据库中,截图如下 但是一旦在service和controller层中调用对应的mapper类,就会抛出如题所示的异常情况。最后成功解决方式如下。 原因:没有在设置中将项目设置为输出目录 。

如上,在工件设置中,将项目设置为输出目录。 至此问题解决。

精彩链接

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: