标题使用mybatis在测试类中往数据库插入数据但是表里没有数据的原因
测试完之后控制台输出正确但是表里没有数据
- 原因:没有提交事务,
- 解决方法1:在sqlsession.close()之前加入sql.commit()语句
问题解决 - 解决方法2:定义一个Mybatis工具类,在工具类中定义一个静态方法,返回的方法参数中设为true
工具类如下:
package com.zhang.util;
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 MybatisUtil {
//sqlSessionFactory-->sqlSession
private static SqlSessionFactory sqlSessionFactory;
static {
try {
//使用mybatis第一步:获取sqlSessionFactory对象
String resource = "mybatis-config.xml";
InputStream inputStream = Resources.getResourceAsStream(resource);
sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
} catch (IOException e) {
e.printStackTrace();
}
}
public static SqlSession getSession(){
return sqlSessionFactory.openSession(true);
}
}