测试代码如下
class UserDaoTest {
private SqlSessionFactory sqlSessionFactory;
private SqlSession sqlSession;
@Before
public void init(){
String resource="mybatis-config.xml";
InputStream inputStream;
try {
inputStream = Resources.getResourceAsStream(resource);
sqlSessionFactory=new SqlSessionFactoryBuilder().build(inputStream);
sqlSession=sqlSessionFactory.openSession();
}catch (IOException e){
e.printStackTrace();
}
}
@Test
void selectWithCond() {
}
@Test
void userList(){
UserDao userDao = sqlSession.getMapper(UserDao.class);
User user = userDao.selectWithCond("张三","123");
System.out.println(user.toString());
}
@After
public void destroy(){
sqlSession.commit();
sqlSession.close();
}
}
反复检查mybatis配置文件都没有问题,以为是配置文件没有加载,但是也没有抛出IOException。最后把init()在测试的函数中进行执行,才发现@Before失效了,通过百度查阅得知@Before被@BeforeEach代替了,书上写的是@Before,害我找得好苦。